在Swift 4中,将String值类型转换为Float值的正确方法是什么?

时间:2018-08-20 15:10:05

标签: swift xcode floating-point

我遇到了以下代码在项目中无法按预期运行而在Playground中可以正常运行的情况。

strtof("0.9", nil) //expected to return 0.9
Float("0.9")! //expected to return 0.9

这是我在Project与Playground中执行相同代码时的屏幕截图。

XCode的控制台:

enter image description here

游乐场:

enter image description here

这种区别是故意的吗?

1 个答案:

答案 0 :(得分:0)

出现问题是因为十进制0.9不能表示为32位浮点值(在Swift中为Float)。最接近的值恰好是0.899999976。

调试器(Xcode的控制台)和Playground都计算出完全相同的值。

只是产生输出的方式不同。调试器显示所有有效数字时,操场似乎将结果取整。