java - 将货币舍入到2位小数

时间:2016-02-19 18:13:09

标签: java decimal currency decimalformat

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

我想以'£100.50'格式打印我的余额,但它目前给我一个'£100.5'格式。

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

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

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

通过将(“#。##”)更改为(“#。00”)

来修复错误

3 个答案:

答案 0 :(得分:2)

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

<强>更新

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

答案 1 :(得分:1)

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

这应该有效

从@ A2H&#39的回答我想做个记录。

假设你有

balance = .7538;

如果您希望它为0.75,请使用

new DecimalFormat("0.00");

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

new DecimalFormat("#.00");

答案 2 :(得分:0)

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