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

标签 swift xcode floating-point

我遇到了一种情况,以下代码在项目中无法按预期工作,但在 Playground 中工作正常。

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

以下是我在项目与 Playground 中执行相同代码时的屏幕截图。

XCode 控制台:

enter image description here

Playground :

enter image description here

这种差异是故意的吗?

最佳答案

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

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

只是生成输出的方式有所不同。当调试器显示所有有效数字时, Playground 似乎对结果进行四舍五入。

关于swift - 在 Swift 4 中,将 String 值类型转换为 Float 值的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51933697/

相关文章:

ios - UITableview 原型(prototype)单元格未正确填充

swift - 为 shell 命令获取实用程序的完整路径,如 7zip 等

c - C中的浮点值混淆

python - 我如何强制 Python 将整数保留在科学记数法之外

ios - 为什么我需要存储一个 CLLocationManager 来获取 MKMapView 中的用户位置?

ios - Swift JSON 解析并打印数组中的指定值

swift - 可以创建一个出现在 View Controller 角落的 UITableView

xcode - Xcode 7.3.1 是否可以在 macOS High Sierra (10.13) 上运行?

Perl 转换为 int 错误但仅限于特定数字

ios - 如何返回当前目录 (“.” )、父目录 (“..” 的 URLs