如何使用带小数的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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 elasticsearch 数据源在 Grafana 中显示带小数位的值?