Я столкнулся с проблемой при использовании 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)")