sin(pi()) не возвращает 0 в DDMathParser
Я делаю приложение калькулятора, используя DDMathParser. Проблема, с которой я сталкиваюсь, sin(pi())
не возвращает 0, но тривиальное число, такое как 1.2246...e-16. Мне просто интересно, есть ли способ конвертировать его в 0? Спасибо.
1 ответ
Решение
-description
метод на NSNumber
не точно представляет базовое число:
NSLog(@"%f", sin(M_PI)); // logs 0.000000
NSLog(@"%@", @(sin(M_PI))); // logs 1.224646799147353e-16
Чтобы обойти это, вы можете вытащить -doubleValue
из NSNumber
и это должно дать вам 0
:
NSLog(@"%f", @(sin(M_PI)).doubleValue); // logs 0.000000