如何在Java中将数字舍入到四位小数?

时间:2016-01-27 06:22:33

标签: java arrays rounding decimalformat

所以,让我说我有一个简单的浮点数数组

[0.315023,1.0,0.12345,0121111]

并称之为arr1。

我需要把这个数组转换成这个:

[0.3150,1.0000,0.1234,0.1211] *请注意1.0现在是1.0000而0.3150最后有0

我尝试使用for循环迭代数组并将数字四舍五入,如下所示:

//我在arr1中表示一个数字;让我们想象一下" newNum"替换arr1中的原始数字 float newNum = Math.round(i * 10000.0000)/10000.0000;

结果如下:

[0.315,1.0,0.1234,0.1211]

正如你所看到的,第一项在结尾处缺少0,而第二项在结尾处缺少很多零。

我曾尝试使用DecimalFormat,但它不适用于float数组;我也没有尝试格式化小数,我正在四舍五入。 (虽然我先尝试过这一轮然后格式化第二轮;由于数据类型不同而无法正常工作)。

请为了上帝的爱,帮助我。这就像我需要为项目完成的最后一件事。我太近了!非常感谢你!

* PS:我需要确保阵列保持FLOAT状态;我需要稍后使用数组中的数据。

2 个答案:

答案 0 :(得分:0)

使用: -

 DecimalFormat twoDForm = new DecimalFormat("#.####");
 double d = Double.valueOf(twoDForm.format(newNum));

答案 1 :(得分:0)

DecimalFormat f = new DecimalFormat("##.0000");
  System.out.println(" output : "+ f.format(2.56));

Follows java docs for format data