这是Xcode 7.3.1 playground中的一个简单代码:
var str = "8.7"
print(Double(str))
输出结果令人惊讶:
Optional(8.6999999999999993)
还,Float(str)给出:8.69999981
对这个家伙的任何想法或理由?任何对此的参考将不胜感激.
另外,我应该如何将"8.7"转换为8.7为Double(或Float)?
编辑
在swift中:
(str as NSString).doubleValue返回8.7
现在,那没关系.但我的问题仍然没有得到完整答案.我们找到了另一种选择,但为什么我们不能依赖Double("8.7").请更深入地了解这一点.
编辑2
("6.9"as NSString).doubleValue //打印6.9000000000000004
所以,问题又开始了.