我刚让我的应用程序最近运行;在测试时,我发现0.1
的值多次添加到另一个double值中时,是不正确的。
所以我开始研究和测试双打和(他们)的不准确性。我得出的结果是,debugDescription
的double属性返回了除分配值以外的其他值。与此片段相关,以尝试了解我的意思:
`让double = 0.1
打印(double.debugDescription)
//结果:0.10000000000000001`
是否有一个不错的解决方案或解决方法,可以使翻倍更准确?
答案 0 :(得分:0)
您看到的是存储的值。当您打印它并得到0.1时,这是因为swift有助于将数字四舍五入,因此看起来更好。调试说明可能会给您确切的存储值。参见例如https://en.wikipedia.org/wiki/Floating-point_arithmetic介绍如何快速存储数字。