【发布时间】:2015-04-22 16:35:00
【问题描述】:
谁能告诉我为什么以下语句的计算结果为假?
bool myBoolean = .6 + .3 + .1 == .1 + .3 + .6; // false
它在 Javascript 和 C++ 中做同样的事情。
【问题讨论】:
-
浮点运算?
-
请注意,在任何算术之后测试浮点相等性通常是一个坏主意
-
使用正确的类型
decimal:bool myBoolean = .6m + .3m + .1m == .1m + .3m + .6m; -
永远不要相信浮点相等比较。您可以将示例简化为 bool myBoolean = .1 == .1;
-
@CallumBradbury:我无法复制你所说的。
bool myBoolean = .1 == .1;为我返回 true。这令人困惑,因为高度赞成的重复问题也说明了这一点。
标签: javascript c# c++