【发布时间】:2011-04-27 18:56:39
【问题描述】:
可能重复:
Round a double to 2 significant figures after decimal point
我正在尝试使用前导零格式化双至 2 位小数,但没有运气。 这是我的代码:
Double price = 32.0;
DecimalFormat decim = new DecimalFormat("#.##");
Double price2 = Double.parseDouble(decim.format(price));
我希望输出为32.00,而不是32.0
有什么解决办法吗??
【问题讨论】:
-
既然您在这里处理货币,请考虑使用
BigDecimal来表示货币。使用浮点数可能会导致舍入问题。 -
我确信在货币上有一百万个 SO 线程。我更喜欢整数而不是 BigDecimal,然后我用便士来处理。当然,这既不是这里也不是那里......
-
您的代码不太正确(例如,您从未展示过如何获得输出)。您能否将您的程序更改为一个完整的工作程序(带有一个类和一个 main 方法)并告诉我们预期的输出?
-
new DecimalFormat("0.00").format(double-value);