2013-10-09 55 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