如何在Swift中乘以数字?

时间:2015-12-04 18:00:44

标签: swift floating-point calculator

我正在使用Swift中的计算器,但我遇到一个小问题: 当乘以两个数字时,我不会得到与常规计算器相同的结果。

例如:

在斯威夫特:

0.333328247070312 * 16 = 5.33325195312499

在常规计算器中:

0.333328247070312 * 16 = 5.333251953

如何在Swift中获得与常规计算器相同的结果?

1 个答案:

答案 0 :(得分:1)

您的常规计算器"在结果打印中看似错误或奇怪,所以,你不应该依赖它。我已经在Python3中重新检查了你的计算,已知这个计算在binary64 double中计算所有并打印出最精确的十进制形式:

>>> 0.333328247070312 * 16
5.333251953124992

它比Swift输出更加详细(按一位数字)。您的输出也无法验证为binary32计算,因为后者具有~7个正确的十进制数字,并且通常不会打印更多数字。这个计算器是什么?我假设一些基于Pascal的工具由于其自定义的6字节浮点数。

尝试让您的计算器打印最详细的表格。如果它失败了,扔掉它并使用最精确的工具来验证,或者,如果你的任务真的要得到相同的结果,请找出有关其处理的更多细节。