NSDecimalNumber для операций с большими числами на iPhone

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

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

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

Спасибо.


person Dachmt    schedule 28.02.2011    source источник
comment
Вы можете использовать некоторые библиотеки C с открытым исходным кодом для вычислений больших чисел. Поищи в инете тонну найдёшь.   -  person user210504    schedule 01.03.2011


Ответы (2)


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

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

Я бы рекомендовал использовать NSDecimals, если вы не можете найти вескую причину не делать этого.

person Dave DeLong    schedule 28.02.2011

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

person Dachmt    schedule 02.03.2011