如何将 Swift 中的数字相乘?

How to multiply numbers in Swift?

我正在 Swift 开发计算器,但遇到一个小问题: 将两个数字相乘时,我得到的结果与普通计算器的结果不同。

例如:

在Swift中:

0.333328247070312 * 16 = 5.33325195312499

在普通计算器中:

0.333328247070312 * 16 = 5.333251953

我应该怎么做才能得到与 Swift 中的普通计算器相同的结果?

您的 "regular calculator" 在结果打印中似乎有误或奇怪,因此,您不应该依赖它。我已经在 Python3 中重新检查了你的计算,它以 binary64 double 计算所有内容并打印最精确的十进制形式:

>>> 0.333328247070312 * 16
5.333251953124992

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

试着让你的计算器打印出最详细的表格。如果失败了,就扔掉它,用最精确的工具来验证,或者,如果你的任务真的是为了得到相同的结果,那就去弄清楚它处理的更多细节。