使用NSNumberFormatter的货币样式时输出错误

时间:2012-03-07 11:10:22

标签: iphone objective-c nsnumberformatter

我目前正在尝试使用货币样式将浮点数从JSON Feed格式化为带有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 个答案:

答案 0 :(得分:1)

您没有为NSLocale指定NSNumberFormatter,它将使用设置中的当前“区域”来设置货币格式(包括分隔符)。您当前的“区域”设置可能是使用点作为分隔符的区域,将其更改为使用逗号的区域,例如en_US

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

例如