【发布时间】:2014-02-16 15:41:24
【问题描述】:
我弄乱了代码执行结果。
代码:
System.out.println(0.2==0.1+0.1);
System.out.println(0.3==0.1+0.1+0.1);
输出:
true
false
我知道 0.2 和 0.3 不能正确转换为二进制。
为什么我会看到不同的结果?
更新:
我可以在没有编译器的情况下预测类似问题的结果吗?
【问题讨论】:
-
我不懂javascript
-
查看
0.6==0.1+0.1+0.1+0.1+0.1+0.1。这是真的。 -
herohuyongtao - 请解释一下为什么是真的?
-
@gstackoverflow 在你的编译器上测试。
-
请阅读@nr4bt 发布的link。这是每个程序员都应该了解的复杂话题。