0
我在使用NSNumberFormatter時遇到了一個問題。在兩種系統語言設置中,我得到兩個不同的結果。NSNumberFormatter.numberFromString返回意外值
現在說系統語言是越南語。當值爲「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)")