如何修复Swift's对替身的调试描述不准确



我最近刚开始运行我的应用程序;在测试时,我注意到当我多次将0.1的值添加到另一个双倍值时存在不准确。

所以我开始研究和测试双打和(他们的(不准确性。我得到的结果是,doubles的debugDescription-属性返回的是指定值之外的其他值。与这个片段相关,试着看看我的意思是什么:`设double=0.1打印(double.debugDescription(

//结果:0.10000000000000001`

有没有一个好的解决方案或变通方法可以让双打更准确?

您看到的存储的值。当你打印它时,你得到0.1,这是因为swift有助于对数字进行四舍五入,所以它看起来更好。调试描述可能会为您提供所存储的确切值。参见例如。https://en.wikipedia.org/wiki/Floating-point_arithmetic介绍swift如何存储数字。