如何使用带小数的currencyFormatter

Posted

技术标签:

【中文标题】如何使用带小数的currencyFormatter【英文标题】:How to use currencyFormatter with a decimal 【发布时间】:2017-05-30 21:36:00 【问题描述】:

我正在尝试获取存储在 CoreData 中的小数,并通过 Swift 3 中的货币格式化程序运行它。这是我尝试使用的:

var currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = NumberFormatter.Style.currency
// localize to your grouping and decimal separator
currencyFormatter.locale = NSLocale.current
var priceString = currencyFormatter.stringFromNumber(NSNumber(totalAmount))

totalAmount 是我用于 CoreData 的小数。

但是。尝试将十进制转换为 NSNumber() 时出现此错误

Argument labels '(_:)' do not match any available overloads

【问题讨论】:

使用string(from:)string(for:) 【参考方案1】:

stringFromNumber 重命名为 string(from:),例如

var priceString = currencyFormatter.string(from: NSNumber(totalAmount))

但您不必转换为NSNumber

var priceString = currencyFormatter.string(for: totalAmount)

【讨论】:

【参考方案2】:

你可以有类似的东西:

class YourClass: UIViewController 
  static let priceFormatter: NumberFormatter = 
    let formatter = NumberFormatter()

    formatter.formatterBehavior = .behavior10_4
    formatter.numberStyle = .currency

    return formatter
  ()

用法:

yourLabel.text = YourClass.priceFormatter.string(from: totalAmount)

【讨论】:

以上是关于如何使用带小数的currencyFormatter的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带 2 个小数的 fmt:formatNumber

如何使用 elasticsearch 数据源在 Grafana 中显示带小数位的值?

如何设置带两位小数的千位分隔符?

如何接收具有由小数点分隔的数字的用户输入并将该输入存储为不带小数点的 int?

如何让excel饼图的百分比带两位小数

如何显示不带小数的整数