Неверный вывод при использовании стиля валюты с NSNumberFormatter - PullRequest
4 голосов
/ 07 марта 2012

В настоящее время я пытаюсь отформатировать число с плавающей запятой из JSON-фида в число с помощью NSNumberFormatter, используя стиль валюты.

Мое текущее решение таково:

float test = 100.50;
NSNumber *number = [NSNumber numberWithFloat:test];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:@"DKK"];
NSString *price = [formatter stringFromNumber:number];

Моя проблема в том, что на выходе получается «DKK100.50», когда правильный результат для выбранной валюты должен быть «DKK100,50» (обратите внимание, что текущий результат с точкой в ​​качестве десятичного разделителя, а не запятой, как должно) .

Что я делаю не так?

1 Ответ

1 голос
/ 07 марта 2012

Вы не указываете NSLocale для вашего NSNumberFormatter, он будет использовать текущий «регион» в настройке, чтобы установить формат валюты (включая разделитель).Текущей настройкой «регион» может быть регион, в котором в качестве разделителя используется точка, замените его на тот, который использует запятую, например en_US

[formatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];

, например

...