【问题标题】:NSNumberFormatter stringFromNumber: doesn't return a currency symbolNSNumberFormatter stringFromNumber:不返回货币符号
【发布时间】:2014-07-11 17:26:50
【问题描述】:

我在自定义 UITableViewCell 子类上有以下方法:

- (void)setPrice:(NSNumber *)price {
  _price = price;
  NSNumberFormatter *formatter = [NSNumberFormatter new];
  formatter.formatterBehavior = NSNumberFormatterCurrencyStyle;
  formatter.currencyCode = @"USD";
  formatter.locale = [NSLocale currentLocale];
  priceLabel.text = [formatter stringFromNumber:_price];
}

priceLabel 最终会显示 _price 而没有货币符号 ($)。据我所知,这不应该发生。有什么想法吗?

谢谢!

【问题讨论】:

    标签: ios objective-c currency nsnumberformatter


    【解决方案1】:

    改变这个:

    formatter.formatterBehavior = NSNumberFormatterCurrencyStyle;
    

    到:

    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    

    【讨论】:

      【解决方案2】:

      看到常量NSNumberFormatterCurrencyStyle了吗? Objective-C 没有对枚举进行类型检查,但是从名字可以看出它是和 NSNumberFormatterStyle 相关的。

      formatterBehavior 采用NSNumberFormatterBehavior,类似于NSNumberFormatterBehaviorDefault

      您想改为设置numberStyle

      formatter.numberStyle = NSNumberFormatterCurrencyStyle;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        相关资源
        最近更新 更多