Какао NSNumberFormatterCurrencyStyle без "$" возвращает ноль - PullRequest
3 голосов
/ 21 июля 2009

У меня есть средство форматирования чисел, настроенное для преобразования строк валюты в десятичные значения. Проблема состоит в том, что если текстовая строка не имеет начального знака доллара («$»), она преобразуется в 0, а не в действительный соответствующий номер. Итак:

"$3.50" converts to 3.50
 "3.50" converts to 0

Вот код для конвертера:

// formatter to convert a value to and from a currency string
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setGeneratesDecimalNumbers:YES];

Я что-то упустил?

Ответы [ 2 ]

1 голос
/ 21 июля 2009

Я столкнулся с подобной проблемой. В итоге я удалил NSNumberFormatter для анализа и переключился на RegexKit Lite с гораздо лучшими результатами.

Получить копию здесь: RegexKit Lite

Тогда иди сюда http://regexlib.com/ и найди регулярное выражение, которое лучше всего тебе подходит.

1 голос
/ 21 июля 2009

Он преобразует «3,50» в 0, потому что не распознает «3,50» в качестве действительной строки валюты, как указано здесь: http://blog.clickablebliss.com/2006/10/05/the-challenges-of-international-money-in-cocoa/. Если NSNumberFormatterCurrencyStyle по умолчанию недостаточно гибок для ваших нужд, вам может потребоваться подкласс для обработки этих случаев.

...