[英]NSNumberFormatter for Different region
我会收到美金$ 5.00,日本¥5.00,欧洲5.00€等等,但我不想要。 我想在每个语言环境中都得到相同的结果:美国$ 5.00,日本$ 5.00,欧洲$ 5.00。 这是我尝试过的:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSNumber *tmp = (NSNumber *)[NSString notNullString:[details objectForKey:@"askingPricePerCarat"]];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:[tmp doubleValue]]];
askingPricePerCarat = numberAsString;
最后,我得到了这个问题的答案,它是基于设备的“区域格式”设置而不是语言。 如果将区域设置为美国,则无论使用哪种语言,您都将获得en_US
NSNumberFormatter * fmt;
NSNumber * n;
fmt = [ [ NSNumberFormatter alloc ] init ];
n = [ NSNumber numberWithFloat: 10 ];
[ fmt setFormatterBehavior: NSNumberFormatterBehavior10_4 ];
[ fmt setCurrencySymbol: @"$" ];
[ fmt setNumberStyle: NSNumberFormatterCurrencyStyle ];
// NSLog( @"%@", [ fmt stringFromNumber: n ];
[ fmt release ];
采用
Currency.text = [ fmt stringFromNumber: n ];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.