为什么NSNumber不遵守locale decimalSeparator

时间:2018-02-14 16:07:44

标签: swift string number-formatting nsnumber

我正在使用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

1 个答案:

答案 0 :(得分:3)

请勿使用stringValue将号码转换回您希望向用户显示的字符串。使用NumberFormatter将数字转换为语言环境友好的字符串表示形式。

仅供参考 - 没有必要将数字格式化程序locale设置为.current,因为这是默认设置。