我将收到美国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;
答案 0 :(得分:1)
最后我得到了这个问题的答案,是基于设备的区域格式设置,而不是语言。如果该地区设置为美国,则无论您使用哪种语言
,都会获得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 ];