我有一个代表货币的BigDecimal
字段amount
,我需要在浏览器中以$123.00
、$15.50
、$0.33
等格式打印它的值。
我该怎么做呢?
(我自己看到的唯一简单的解决方案是从BigDecimal
获取floatValue
,然后使用NumberFormat
使小数部分的精度达到两位数)。
发布于 2010-08-03 19:01:28
public static String currencyFormat(BigDecimal n) {
return NumberFormat.getCurrencyInstance().format(n);
}
它将使用您的JVM的当前默认Locale
来选择您的货币符号。或者您可以指定一个Locale
。
NumberFormat.getInstance(Locale.US)
有关更多信息,请参见NumberFormat
类。
发布于 2015-07-21 13:45:00
要设置千分隔符,比如说123,456.78
,你必须使用DecimalFormat
DecimalFormat df = new DecimalFormat("#,###.00");
System.out.println(df.format(new BigDecimal(123456.75)));
System.out.println(df.format(new BigDecimal(123456.00)));
System.out.println(df.format(new BigDecimal(123456123456.78)));
结果如下:
123,456.75
123,456.00
123,456,123,456.78
虽然我设置了#,###.00
掩码,但它也成功地格式化了较长的值。请注意,result中的逗号(,)分隔符取决于您的区域设置。对于俄语语言环境,它可能只是空格()。
发布于 2017-09-20 11:46:24
BigDecimal pi = new BigDecimal(3.14);
BigDecimal pi4 = new BigDecimal(12.56);
System.out.printf("%.2f",pi);
//打印3.14
System.out.printf("%.0f",pi4);
//打印13
https://stackoverflow.com/questions/3395825
复制相似问题