我有以下代码:

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”。这是为什么?如何解决此问题,以便始终获得正确的字符串表示形式?

最佳答案

NSNumberFormatter考虑了语言环境。这些设备可以将其语言环境设置为人们在该地点使用逗号的国家。这是一个功能,而不是错误。人们特别使用NSNumberFormatter作为本地化功能。如果您希望该点无处不在,则可以将其转换成字符串(不这样做)。这不仅可以解决点/逗号问题,还可以解决数字问题,例如波斯数字不同于我们知道的数字

关于ios - 从NSNumberFormatter获得意外结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31631079/

10-14 22:04