为什么 NSNumber 不尊重语言环境 decimalSeparator

Why NSNumber do not respect locale decimalSeparator

我正在使用 NumberFormatterString 转换为 NSNumber 关于当前语言环境。

我的测试地点是瑞典。

所以 decimalSeparator 在我的例子中是 ","

这是NumberFormatter声明。

let numberFormatter = NumberFormatter()
numberFormatter.locale = .current
numberFormatter.numberStyle = .decimal
numberFormatter.isLenient = true

用法。

let number = numberFormatter.number(from:"1,01") // 1.01

但是当我尝试将 NSNumber 转换回字符串时。

let stringNumber = number?.stringValue // 1.01

我收到错误的语言环境 decimalSeparator

不要使用 stringValue 将数字转换回您希望显示给用户的字符串。使用您的 NumberFormatter 将数字转换为语言环境友好的字符串表示形式。

仅供参考 - 无需将数字格式化程序的 locale 设置为 .current,因为这是默认设置。