NSDecimalNumber для операций с большими числами на iPhone - PullRequest
4 голосов
/ 01 марта 2011

Мне нужно использовать большое число для точности в моем приложении, float или double недостаточно.У меня также есть числа int и float, и я должен выполнять операции со всеми ними.

Я думаю, что NSDecimalNumber хорош для точности, которая мне нужна, но я хотел бы выполнять операции с другими видами чисел иэто сложная формула.Поэтому я не считаю целесообразным использовать этот класс для создания сложных формул (слишком сложных, чтобы использовать функции decimalWith ... или decimalBy ...), когда у вас много вещей.

Кто-нибудь знаетчто использовать для того, чтобы легко манипулировать большими числами и выполнять над ними операции с различными типами (float, decimal, int)?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 01 марта 2011

NSDecimalNumbers - это просто обертки вокруг NSDecimal структур, которые имеют набор полезных функций для манипуляций без необходимости выделения новых объектов.

Я немного их использовал и предложил некоторые другие полезные дополнения к встроенным: https://github.com/davedelong/DDMathParser/blob/master/DDMathParser/_DDDecimalFunctions.m

Я бы порекомендовал использовать NSDecimal s, если только у вас нет веских причин не делать этого.

0 голосов
/ 02 марта 2011

Спасибо, ребята! Наконец-то я использовал двойной тип, которого мне достаточно. Я был сбит с толку, потому что я использовал NSLog с %f, чтобы напечатать свой номер, а это было не то, что я хотел. Я использовал %e вместо того, чтобы проверить, что число в научной записи было правильным, и это так. Поэтому я просто делаю все мои расчеты, используя двойное число, и оно работает.

...