我有以下代码:
var num = 0.03829585
let amountNumber = NSNumber(double: num)
let nFormatter = NSNumberFormatter()
nFormatter.numberStyle = .DecimalStyle
nFormatter.roundingMode = .RoundHalfUp
nFormatter.maximumFractionDigits = 8
var numStr = nFormatter.stringFromNumber(amountNumber)!
numStr
的预期结果为“0.03829585”。这就是我用我的测试设备得到的,但是在我的少量TestFlight用户的设备上,我得到了“0,03829585”。这是为什么?如何解决这个问题,以便我总能获得正确的字符串表示?
答案 0 :(得分:5)
NSNumberFormatter考虑了区域设置。设备可以将其区域设置设置为人们在该点使用逗号的国家/地区。这是一个功能,而不是一个bug。人们特别使用NSNumberFormatter进行本地化功能。如果你希望这个点在任何地方,你可以简单地将该双精度转换为字符串(不要这样做)。这不仅关注点/逗号问题,还要注意数字,例如波斯数字与我们知道的数字不同