【发布时间】:2016-04-03 18:01:59
【问题描述】:
我想将一个双精度值格式化为具有的样式
- 货币格式符号
- 值四舍五入到小数点后 2 位
- 带有千位分隔符的最终值
具体使用 java.util.Formatter 类
示例:-
double amount = 5896324555.59235328;
String finalAmount = "";
// Some coding
System.out.println("Amount is - " + finalAmount);
应该是这样的:-
Amount is - $ 5,896,324,555.60
我搜索了,但我无法理解 Oracle 文档或其他教程,我发现这个链接非常接近我的要求,但它不是 Java - How to format double value into string with 2 decimal places after dot and with separators of thousands?
【问题讨论】:
-
你显然搜索的不够多……关于 Formatter 类的问题很多。另请参阅stackoverflow.com/questions/5323502/… 关于千位分隔符..
-
...并且不要使用 double 作为货币。使用 BigDecimal。 ;)
-
@Jerry Andrews 有什么特别的原因吗?
-
当然——BigDecimal 总是给你无限的精度。 float 和 double 操作会引入舍入误差。典型的例子总是四舍五入。考虑这篇文章(谷歌搜索“Java BigDecimal Currency”的第三个结果):blogs.oracle.com/CoreJavaTechTips/entry/the_need_for_bigdecimal
标签: java