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
Другие вопросы по тегам