简体   繁体   English

NSNumberFormatter用于不同区域

[英]NSNumberFormatter for Different region

I will receive $5.00 for US, ¥5.00 for Japan, 5.00€ for Europe, etc. But I don't want that. 我会收到美金$ 5.00,日本¥5.00,欧洲5.00€等等,但我不想要。 I want to get the same thing in every locale: $5.00 for US, $5.00 for Japan, $5.00 for Europe. 我想在每个语言环境中都得到相同的结果:美国$ 5.00,日本$ 5.00,欧洲$ 5.00。 Here is what I have tried: 这是我尝试过的:

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;

Finally i got the answer of this question, is based on the device's Region Format settings, not the language. 最后,我得到了这个问题的答案,它是基于设备的“区域格式”设置而不是语言。 If the region is set to United States you will get en_US regardless of which language you're using 如果将区域设置为美国,则无论使用哪种语言,您都将获得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 ];

use 采用

Currency.text = [ fmt stringFromNumber: n ];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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