使用NSNumberFormatter时遇到了问题。在两种系统语言设置中,我得到两个不同的结果。
现在说系统语言是越南语。当值为“1.111”(包含currencyGroupingSeparator)时,numberFromString
返回nil。但是当值为“111”且不包含currencyGroupingSeparator时,numberFromString
会按预期返回NSNumber
(1.111)。
奇怪的是当系统语言是英语时,“1.111”和“111”都可以通过numberFromString
转换为预期的`NSNumber(1.111和111)。
我是否误用了NSNumberFormatter?
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.currencySymbol = ""
formatter.maximumFractionDigits = 0
formatter.minimumFractionDigits = 0
formatter.currencyGroupingSeparator = "."
formatter.currencyDecimalSeparator = ","
let testNumber = formatter.numberFromString("1.111")
// nil when system language is Vietnamese,
// but 1.111 when system language is English
print("\(testNumber)")
答案 0 :(得分:0)
您可以强制格式化的语言环境,然后对所有情况都是一样的:
{{1}}