NSNumberFormatter用于不同区域 [英] NSNumberFormatter for Different region

查看:45
本文介绍了NSNumberFormatter用于不同区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我会收到美金$ 5.00,日本¥5.00,欧洲5.00€等等,但我不想要.我想在每个语言环境中都得到相同的结果:美国$ 5.00,日本$ 5.00,欧洲$ 5.00.这是我尝试过的:

I will receive $5.00 for US, ¥5.00 for Japan, 5.00€ for Europe, etc. But I don't want that. I want to get the same thing in every locale: $5.00 for US, $5.00 for Japan, $5.00 for Europe. 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;

推荐答案

最后,我得到了这个问题的答案,它基于设备的区域格式"设置,而不是语言.如果该地区设置为美国,则无论您使用哪种语言,您都将获得en_US

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

 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 ];

这篇关于NSNumberFormatter用于不同区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆