使用NumberFormatter避免不间断的空间



我有一个NumberFormatter设置,如下所示:

let currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.groupingSeparator = "."
currencyFormatter.numberStyle = .currency
currencyFormatter.locale = Locale(identifier: "it_IT")
currencyFormatter.currencySymbol = ""

我需要检索一个基于字符串值的值作为输入。

currencyFormatter.number(from: "1.000,00") // nil
currencyFormatter.number(from: "1.000,00u{00a0}") // 1000

在第一个样本中,格式化程序返回nil,而在第二个样本中我获得了正确的值(u{00a0}是非中断空间符号(。

有没有一种方法可以让第一个样本在不添加空格符号的情况下工作?

如果没有货币符号,则此数字格式化程序的样式需要为.decimal,而不是.currency。这就足够了:

let currencyFormatter = NumberFormatter()
currencyFormatter.numberStyle = .decimal
currencyFormatter.locale = Locale(identifier: "it_IT")

最新更新