2013-10-09 97 views
3

我用下面的函数如何在java中舍入0.0到0.00?

float val=0.0; 
DecimalFormat toTheFormat = new DecimalFormat("#.##"); 
float value=Float.valueOf(toTheFormat.format(val)); 

但它不适合还是喜欢“0.0”的所有条件“0.0”。它不会扩大到“0.00”。

回答

12

使用

DecimalFormat toTheFormat = new DecimalFormat("0.00"); 

四舍五入到2显著位

+0

尝试。仍然得到相同的结果。 –

+1

'floats'不能正确填充零 - 您需要使用'toTheFormat.format(val)'本身的输出而不是'value' – Reimeus

+0

此方法的输出是String。如果我需要浮动,该怎么办? –

4

尝试

DecimalFormat toTheFormat = new DecimalFormat("#.00"); 
+0

此方法的输出为String。如果我需要浮动,该怎么办? –

+0

你可以做一个转换结果 – sunysen

1

你的做法是错误的。 四舍五入是一个数字运算,它需要一个数字x并返回另一个数字y,该数字与x近似,并具有十进制扩展只有这么多数字的属性。例如:

0.123 --> 0.12 

但0.0和0.00是完全相同的数字,舍入没有意义。你(可能)想要的是在输出上以某种方式格式化数字。为此,请参阅其他答案。

1

如果我使用DecimalFormat toTheFormat = new DecimalFormat("#.00");

我得到输出.00没有0.00

所以这将是正确的代码

DecimalFormat toTheFormat = new DecimalFormat("#0.00");

+0

你可以省略领先的'#'...... – Reimeus