使用 NumberFormatter 避免不间断 space

Avoiding non breaking space using 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,00\u{00a0}") // 1000

在第一个示例中,格式化程序 returns nil,而在第二个示例中,我获得了正确的值(\u{00a0} 是非中断 space 符号)。

有没有办法让第一个样本在不添加 space 符号的情况下工作?

如果没有货币符号,这个数字格式器的样式需要是.decimal,而不是.currency。这足够了:

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