首页 > 解决方案 > 在 Xcode 控制台中除以两个双打会产生错误的结果

问题描述

我在 Xcode 中尝试了一些东西,但遇到了一个无法解释的情况,Xcode 给我一个简单的除法错误的结果:

let a : Double = 0.235
let b : Double = 0.001
let nrOfDivisions = a / b

print("Divisions: ", nrOfDivisions) //prints 234.99999999999997

很奇怪,如果我从0.230 ... 0.234到相同数量的0.001,我会得到正确的结果,但从0.235 ... 0.239我开始会得到这些错误的结果。我现在已经测试过0.225, 0.226, 0.227, 0.245, 0.246, 0.247,它们都正确划分。

这里可能是什么问题?这是 Xcode 中的错误,还是我遗漏了什么?

标签: iosswiftxcode

解决方案


那么这可能是由于这个问题:为什么不使用 Double 或 Float 来表示货币?. 您是否认为 Apple 错误地实现了浮点?在 Java 世界中,这些问题经常出现,并且BigDecimal是解决方案,您可以阅读相关内容。


推荐阅读