Небольшие числа в Objective C 2.0 - PullRequest
1 голос
/ 20 августа 2010

Я создал класс калькулятора, который выполняет базовые функции +, -,%, * и sin, cos, tan, sqrt и другие математические функции.

У меня есть все переменные типа double, все работает нормальнодля больших чисел, так что я могу вычислить числа, как 1.35E122, но проблема с очень маленькими числами.Например, если я делаю вычисления 1/98556321, я получаю 0, где я хотел бы получить что-то 1.01464E-8.

Должен ли я переписать свой код так, чтобы я манипулировал только NSDecimalNumber, и если да, то чтоделать с функциями sin и cos math, которые принимают только двойные и длинные двойные значения.

Ответы [ 2 ]

5 голосов
/ 20 августа 2010
1/98556321

Это деление дает 0, поскольку здесь выполняется целочисленное деление - результат является целочисленной частью деления Следующая строка должна дать вам результат с плавающей запятой:

1/(double)98556321
2 голосов
/ 20 августа 2010

integer/integer всегда целое число

То есть вы конвертируете верхнее или нижнее число в десятичное

(double)1/98556321

или

1/(double)98556321

, которые явно преобразуют число в двойное.

Счастливого кодирования ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...