【发布时间】:2011-10-10 19:18:23
【问题描述】:
如果我使用这样的比较是否安全(a 是 int,b 和 c 是 float/double):
a == b
b == c
这可能听起来很荒谬,但在我的旧编程语言中,有时 1 + 2 == 3 是错误的(因为左侧返回 2.99999999999...)。而且,这个呢:
Math.sqrt(b) == Math.sqrt(c)
b / 3 == 10 / 3 //In case b = 10, does it return true?
【问题讨论】:
-
如果 1.0 + 2.0 != 3.0,不管精度如何,你的电脑都坏了。现在如果 0.1 + 0.2 != 0.3,那就更有意义了。