首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSNumberFormatter currencySymbol出错

NSNumberFormatter currencySymbol出错
EN

Stack Overflow用户
提问于 2012-01-17 19:47:24
回答 4查看 3.3K关注 0票数 6

我在获取NSNumberFormatter的currencySymbol时遇到问题。

我使用的是货币代码为"EUR“的NSNumberFormatter。

当我格式化价格时,符号是正确的,我得到欧元符号。

但是,当我只想使用方法格式化程序currencySymbol获取currencySymbol时,会返回符号$。

如果我手动设置currencySymbol (例如,使用"A“),一切都会正常工作,方法格式化程序currencySymbol将返回"A”符号。

以下是我的代码

代码语言:javascript
复制
// Create formatter
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[formatter setCurrencyCode:@"EUR"];
[formatter setLocale:[NSLocale currentLocale]];

// Log the currency symbol
NSLog(@"[formatter currencyCode] : %@", [formatter currencyCode]);
NSLog(@"[formatter currencySymbol] : %@", [formatter currencySymbol]);
NSLog(@"[formatter currencySymbol] : %@", [formatter stringFromNumber:[NSNumber numberWithInt:0]]);
[formatter setCurrencySymbol:@"A"];
NSLog(@"[formatter currencySymbol] : %@", [formatter currencySymbol]);
NSLog(@"[formatter currencySymbol] : %@", [formatter stringFromNumber:[NSNumber numberWithInt:0]]);

以下是控制台结果:

代码语言:javascript
复制
2012-01-17 12:29:11.108[4545:207] [formatter currencySymbol] : $
2012-01-17 12:29:11.109[4545:207] [formatter currencySymbol] : €0.00
2012-01-17 12:29:11.110[4545:207] [formatter currencySymbol] : A
2012-01-17 12:29:11.111[4545:207] [formatter currencySymbol] : A0.00

我不能强制currencySymbol,因为它可以更改。

有没有办法获得与给定currencyCode对应的正确currencySymbol?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2014-05-06 00:28:26

要获取货币符号,可以结合使用NSLocaleCurrencySymbolNSLocale

代码语言:javascript
复制
   NSLocale* locale = [NSLocale currentLocale];
   NSString* cs = [locale displayNameForKey:NSLocaleCurrencySymbol
                                 value:currencyCode];

获取本地化名称(‘美元’,‘日元’,..)您可以使用NSLocaleCurrencyCode

代码语言:javascript
复制
   NSLocale* locale = [NSLocale currentLocale];
   NSString* cc = [locale displayNameForKey:NSLocaleCurrencyCode
                              value:currencyCode];

其中currencyCode是货币代码(日元、美元、欧元、..)你感兴趣的。

票数 2
EN

Stack Overflow用户

发布于 2012-01-17 21:16:10

问题可能是[formatter setLocale:[NSLocale currentLocale]];覆盖了您之前所做的一些配置。您可能想尝试将该行移动到顶部(紧跟在alloc/init行之后)。

票数 1
EN

Stack Overflow用户

发布于 2015-11-24 14:28:16

尝试此formatter.currencyCode = @"USD";在此处提供所需的货币代码,它将返回正确的符号

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8894066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档