sin(pi()) 在 DDMathParser 中不 return 0

sin(pi()) does not return 0 in DDMathParser

我正在使用 DDMathParser 制作一个计算器应用程序。我面临的问题是 sin(pi()) 不是 return 0,而是像 1.2246...e-16 这样的微不足道的数字。我只是想知道有什么办法可以将它转换为 0? 谢谢。

NSNumber 上的 -description 方法不能准确表示基础数字:

NSLog(@"%f", sin(M_PI));    // logs 0.000000
NSLog(@"%@", @(sin(M_PI))); // logs 1.224646799147353e-16

要解决此问题,您可以拉出 NSNumber-doubleValue,这应该会给您 0:

NSLog(@"%f", @(sin(M_PI)).doubleValue); // logs 0.000000