java - 将货币四舍五入到小数点后两位

java - round currency to 2 decimal places

我有一个似乎无法解决的小问题。

我想以“100.50 英镑”的格式打印我的余额,但它目前给我的是“100.5 英镑”的格式。

我正在使用 decimalFormat 方法,但它不起作用。有什么帮助吗?

final DecimalFormat df2 = new DecimalFormat("#.##");

balance = 100.499999;
System.out.println("Balance: £ " + df2.format(balance));

通过将 ("#.##") 更改为 ("#.00")

修复了错误
final DecimalFormat df2 = new DecimalFormat("#.00");
balance = 100.499999;
System.out.println("Balance: £ " + df2.format(balance));

这应该有效

来自@A2H的回答我想做个记录

假设,你有

balance = .7538;

如果你希望它是 0.75 然后使用

new DecimalFormat("0.00");

或者如果你想成为 .75 然后使用

new DecimalFormat("#.00");

这个有效:new DecimalFormat("0.00");

更新

要完整了解 java.text.DecimalFormat 中使用的模式,请参阅 Java API https://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

double value= 213.3456;
DecimalFormat df = new DecimalFormat("#.00");      
System.out.println(df.format(value));