Грешен изход при използване на валутен стил с NSNumberFormatter

В момента се опитвам да форматирам float от 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“ (забележете, че текущият резултат е с точка като десетичен разделител, а не със запетая, както би трябвало).

какво правя грешно


person Krueger    schedule 07.03.2012    source източник


Отговори (1)


Не посочите NSLocale за вашия NSNumberFormatter, той ще използва текущия „регион“ в настройката, за да настрои формата на валутата (който включва разделителя). Вашата текуща настройка за „регион“ може да е регион, който използва точка като разделител, променете го на такъв, който използва запетая, например en_US

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

например

person X Slash    schedule 07.03.2012