繁体   English   中英

NSNumberFormatter用于不同区域

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM