我正在尝试使用 Double.valueOf(String s) 函数将字符串转换为双精度并将其乘以 100。结果对于大多数数字都很好,除了一些数字。例如,如果金额是 10.20,并且我使用 Double.valueOf(10.20) * 100,则结果是 1019.9999 而不是 1020.0。这只发生在 10.20、8.20、9.20。它适用于 7.20、1.20、11.20 等。这是什么原因?下面是我的代码片段
第一种情况
字符串 s = "10.20"; *System.out.println("双重操作后的值为" +(Double.valueOf(firstHalf) 100 ));
结果:-双重操作后的值是1019.9999999999999
实际结果应该是 1020.0。如果我给出以下内容,它可以正常工作
第二个场景
*字符串 s = "7.20"; System.out.println("双重操作后的值为" +(Double.valueOf(firstHalf) 100 ));
结果:- 双重操作后的值为720.0
任何帮助,将不胜感激