ios – NSNumberFormatter货币符号

前端之家收集整理的这篇文章主要介绍了ios – NSNumberFormatter货币符号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的应用程序允许用户选择各种货币进行支出跟踪.
我有一个标签,显示当前符号的金额.我正在使用NSNumberFormatter和kcfNumberFormatterCurrencyStyle来格式化数量字符串并将其显示标签中;
  1. numberFormatter = [[NSNumberFormatter alloc] init];
  2. numberFormatter.numberStyle = kcfNumberFormatterCurrencyStyle;
  3. numberFormatter.currencyCode = @"EUR";

我的目标是显示不同颜色的货币符号,所以我使用NSAttributedString,试图找到符号的范围并为其设置不同的属性.问题是格式化程序在我初始化属性字符串时返回错误的符号:

  1. MLOG(@"internationalCurrencySymbol %@",numberFormatter.internationalCurrencySymbol);
  2. MLOG(@"currencySymbol %@",numberFormatter.currencySymbol);
  3. MLOG(@"currencyCode %@",numberFormatter.currencyCode);
  4.  
  5. //logs:
  6. //USD
  7. //$
  8. //EUR

但当标签显示在屏幕上时,我看到正确的欧元货币符号:€

有谁知道如何获得给定货币代码的货币符号?

解决方法

我刚刚测试了你的代码.如果在按照您的方式定义数字格式化之后立即运行日志语句,则输出
  1. @"EUR"
  2. @"€"
  3. @"EUR"

请注意,国际货币符号和货币符号似乎取决于系统中设置的区域设置.但您可以轻松更改格式化程序的语言环境,如下所示:

  1. numberFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"];

最好不要设置currencySymbol.然后,如果该地区是泰国(@“th_TH”),那么你就得到了

  1. numberFormatter.internationalCurrencySymbol "THB"
  2. numberFormatter.currencySymbol "฿"
  3. numberFormatter.currencyCode "THB"

猜你在找的iOS相关文章