Java中的美元货币格式

时间:2010-06-19 14:04:51

标签: java string currency

在Java中,我如何有效地将1234.56和类似BigDecimals等浮点数转换为$1,234.56等字符串

我正在寻找以下内容:

字符串12345.67变为字符串$12,345.67

我也希望通过FloatBigDecimal执行此操作。

3 个答案:

答案 0 :(得分:32)

有一种适用于语言环境的习惯用法:

import java.text.NumberFormat;

// Get a currency formatter for the current locale.
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(fmt.format(120.00));

如果您当前的区域设置位于美国,则println将打印$ 120.00

另一个例子:

import java.text.NumberFormat;
import java.util.Locale;

Locale locale = new Locale("en", "UK");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(120.00));

这将打印:£120.00

答案 1 :(得分:8)

DecimalFormat moneyFormat = new DecimalFormat("$0.00");
System.out.println(moneyFormat.format(1234.56));

答案 2 :(得分:0)

以下是根据您的输入和输出::

的代码

BigDecimal和数字的程序输出为12,345.67美元,也适用于浮点数。

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class test {
    public static void main(String[] args) {
        DecimalFormatSymbols symbols = new DecimalFormatSymbols();
        symbols.setGroupingSeparator(',');
        String pattern = "$#,##0.###";
        DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
        BigDecimal bigDecimal = new BigDecimal("12345.67");

        String bigDecimalConvertedValue = decimalFormat.format(bigDecimal);
        String convertedValue = decimalFormat.format(12345.67);

        System.out.println(bigDecimalConvertedValue);
        System.out.println(convertedValue);
    }
}