2013-02-24 3 views
-1

Какой тип объекта предназначен для хранения денежной суммы? У меня есть UITextField, где пользователь может ввести сумму денег в долларах, которую я конвертирую в другую валюту, и мне интересно, в каком типе хранить сумму (float/double не подходит для денег), и что выбрать для клавиатуры для этого поля?Объект удерживания денег

ответ

1

Я бы предложил использовать NSDecimalNumber. Кроме того, вы хотите использовать такие методы, как:

- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber withBehavior:(id <NSDecimalNumberBehaviors>)behavior 

над более основных

- (NSDecimalNumber *)decimalNumberByAdding:(NSDecimalNumber *)decimalNumber 

Потому что один из поведения вы можете предоставить это:

NSRoundBankers

раунда до максимально возможного возвращаемого значения; когда на полпути между двумя возможностями, верните возможность, чья последняя цифра равно. На практике это означает, что в конечном итоге цифры будут округлены так часто, как они округлены; там не будет систематического смещения.

Конечно, использование NSDecimal также может быть использовано, но я предпочитаю OO API NSDecimalNumber над API на основе NS из NSDecimal.

4

Вы можете использовать NSDecimal или NSDecimalNumber, которые являются точными, хранятся в качестве базовых 10 чисел, в отличие от float или double.

1

вы должны сделать следующие вещи

  1. Установить тип клавиатуры десятичного
  2. Установить текстовое поле в представлении клавиатуры аксессуара (не обязательно)
  3. Применить регулярное выражение, которое использовало как только пользователь плавающий пункт (.) Ему не разрешается повторно вводить его.
  4. На TextField закончите редактирование вы можете сохранить его как NSDecimal