Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java格式化小数点_Java_Formatting_Double_Decimal - Fatal编程技术网

用Java格式化小数点

用Java格式化小数点,java,formatting,double,decimal,Java,Formatting,Double,Decimal,在Java中,我试图将双精度格式设置为只有2位小数 我读过以下帖子: 由于某种原因,这些方法中的每一种都无法对我掌握的某些数字起作用 例如: DecimalFormat df = new DecimalFormat("#.##"); normalizedValue = Double.valueOf(df.format(normalizedValue)); 如果我打印normalizedValue,我会得到与以下类似的结果: -78.64000000000001 18.97 59.4699

在Java中,我试图将双精度格式设置为只有2位小数

我读过以下帖子:

由于某种原因,这些方法中的每一种都无法对我掌握的某些数字起作用

例如:

DecimalFormat df = new DecimalFormat("#.##");
normalizedValue = Double.valueOf(df.format(normalizedValue));
如果我打印
normalizedValue
,我会得到与以下类似的结果:

-78.64000000000001

18.97

59.469999999999985

-63.120000000000005
(注意:有些格式正确,有些格式不正确)

所以,这些方法似乎是四舍五入的,但我需要一些东西,将删除小数点后2位的所有小数。。。有什么建议吗


谢谢。

在您的示例中,
DecimalFormat.format(…)
给出的字符串表示形式实际上只有两位数字。但一旦你把它重新转换成双倍,这些准确性问题就会出现。当您试图表示“exakt”小数时,像double这样的二进制基格式总是会显示这样的效果。您可以更改为
BigDecimal
以消除此类影响。

在您的示例中,
DecimalFormat.format(…)
给出的字符串表示形式实际上只有2位数字。但一旦你把它重新转换成双倍,这些准确性问题就会出现。当您试图表示“exakt”小数时,像double这样的二进制基格式总是会显示这样的效果。您可以更改为
BigDecimal
,以消除此类影响