Swift Float(或Double)减少0.1,奇怪值而不是0

时间:2016-06-06 12:34:34

标签: ios xcode swift

我遇到了一个奇怪的(至少对我来说)Xcode和Swift 2的问题。如果你试图将它运行到一个游乐场(或在一个项目中,它并不重要),打印的值是相当的有点偏离我的预期。当它应该为0时,至少有一个是

func run() {
    var test : Float = 0.5

    while test > 0 {
        test -= 0.1
        print(test)
    }
}

run()

这将打印以下值:

0.4
0.3
0.2
0.1
1.49012e-08
-0.1

我当然会期待0。 有点奇怪的是,如果你打印(0.1 - 0.1)它正确记录0.0。 如果将test var更改为Double(打印的值加倍,2 ......),这并不重要。也不是强制将描述值转换为Float(或Double)。我发现的唯一的解决方法是将它们全部整理,然后通过除以10来转换为浮动。

非常感谢任何帮助!

0 个答案:

没有答案