Форматировать целое число как два десятичных знака

Я представляю пользователю поле, в котором отображается цифровая клавиатура, и я хочу, чтобы он мог вводить только числа - без десятичных знаков. Однако, поскольку поле является полем валюты, я хочу, чтобы число всегда отображалось с двумя десятичными знаками. Вы, наверное, видели этот тип интерфейса в банкомате.

Я просмотрел документы NSNumberFormatter и общее форматирование с использованием [NSString stringWithFormat], но мне не ясно, как это сделать. Я слушаю поле с селектором для событий UIControlEventEditingChanged. Именно в этом селекторе я хочу выполнить форматирование. Когда я использую [NSString stringWithFormat: @ "%. 2f", amount], он всегда помещает количество слева от десятичной дроби. Я хочу, чтобы это всегда была дробная часть до тех пор, пока не будет введена третья цифра, поэтому, если пользователь вводит 32, фактическая сумма составляет 0,32. Если пользователь вводит 173, фактически получается 1,73. Если пользователь вводит 10047, фактическое значение должно быть 100,47 и т. Д.

Какие-либо предложения?

Спасибо.


person Matt Long    schedule 14.10.2009    source источник
comment
По какой причине вы просто не делите на 100 перед отображением?   -  person paulthenerd    schedule 14.10.2009
comment
Нет причин, кроме того, что у меня ужасная простуда, и я сегодня не думаю правильно. ;-) Спасибо.   -  person Matt Long    schedule 14.10.2009


Ответы (1)


Считайте вводимые суммы центами, а не долларами. Перед форматированием разделите его на 100.

person John Kugelman    schedule 14.10.2009
comment
Теперь это очевидно. Думаю, мне следовало сегодня остаться в постели. Простуда - отстой. ;-) Спасибо за ответ. - person Matt Long; 14.10.2009
comment
Я бы не стал использовать числа с плавающей запятой, сохраните их как целые числа: [NSString stringWithFormat: @% d.% 02d, amount / 100, amount% 100] - person progrmr; 14.10.2009