【问题标题】:Wrong output when using currency style with NSNumberFormatter使用带有 NSNumberFormatter 的货币样式时输出错误
【发布时间】:2012-03-07 11:10:22
【问题描述】:

我目前正在尝试使用货币样式使用 NSNumberFormatter 将浮点数从 JSON 提要格式化为数字。

我目前的解决方案是这样的:

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”(请注意,当前结果是用点作为小数分隔符,而不是应有的逗号) .

我做错了什么?

【问题讨论】:

    标签: iphone objective-c nsnumberformatter


    【解决方案1】:

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

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

    例如

    【讨论】:

      猜你喜欢
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多