2010-10-07 2 views
2

Я вытягиваю десятичные значения из таблицы sql как текстовое поле, которое затем преобразовываю в NSDecimalNumber (это просто потому, что я не знал десятичных значений чтения/записи для sqllite).Примеры выполнения десятичной математики в iPhone

В любом случае, теперь я ударил стену, когда я пытался выполнить простые математические подпрограммы по этим десятичным переменным. Например, Sum = Balance * Interest_Rate. Идея заключается в том, что я работаю с расчетами денег.

Знаете ли вы примеры/учебные пособия, в которых описано, как выполнять эти операции с использованием NSDecimal, NSDecimalNumber или обоих?

Спасибо.

+0

Есть ли причина, по которой вы не просто используете поплавок для хранения номера? Очень легко преобразовать строку в float. http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/floatValue –

+0

Да. все, что читает ive, предполагает не использовать float/double для расчетов, связанных с деньгами. – AlvinfromDiaspar

ответ

3

Для инициализации:

NSString *number = @"123.4"; 
NSDecimalNumber *myDecimal = [[NSDecimalNumber alloc] initWithString: number]; 

Чтобы сделать то, что вы хотите сделать:

NSDecimalNumber *sum = [[NSDecimalNumber alloc] initWithDecimal:[balance decimalNumberByMultiplyingBy: interest_rate]; 

Как?

Ну, вы делаете NSDecimalNumber и выделяете, а затем initWithDecimal. Какой десятичный знак? баланс умножается (decimalNumberByMultiplyingBy) на interest_rate.

+0

Спасибо. позвольте мне посмотреть, смогу ли я сделать эту работу для меня. – AlvinfromDiaspar

+0

Но разве нет способа выполнять операции с использованием NSDecimal? – AlvinfromDiaspar

Смежные вопросы