使用 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")
我的 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")