Swift中的双精度:找不到相等的值

时间:2016-04-13 21:35:05

标签: swift

这是在游乐场制作的小型Swift片段:

var s:Double = -1.0
while s <= 1 {

print ("result",  s, 20 == s)
    s += 0.1
}

s 永远不会等于0.这是结果的一部分:

....
result -0.2 false
result -0.1 false
result -1.38777878078145e-16 false
result 0.0999999999999999 false
result 0.2 false
result 0.3 false
result 0.4 false
result 0.5 false
....

如何比较双值?如何确保0.0为零,而不是0.00000000000001?为什么会这样?

0 个答案:

没有答案