可能重复:
浮点运算在 Java 中不产生精确结果
我最近在做一个项目时遇到了一个奇怪的错误。
当从 65.12 中减去 2 时,该值大于(不等于)63.12。
这是简化的代码:
System.out.println(65.12-2);
以及控制台中的输出:
63.120000000000005
我不确定为什么会这样,如果有人知道一个简单的修复/解决方法会很棒!
谢谢。
可能重复:
浮点运算在 Java 中不产生精确结果
我最近在做一个项目时遇到了一个奇怪的错误。
当从 65.12 中减去 2 时,该值大于(不等于)63.12。
这是简化的代码:
System.out.println(65.12-2);
以及控制台中的输出:
63.120000000000005
我不确定为什么会这样,如果有人知道一个简单的修复/解决方法会很棒!
谢谢。
它与计算机处理浮点值的方式有关。完全理解该主题的推荐文本是:What Every Computer Scientist Should Know About Floating-Point Arithmetic