NSNumberFormatter numberFromString добавляет небольшую дробь при преобразовании определенных чисел
Я вижу некоторые странные ошибки в моем приложении для iPhone, которые я сузил до моего использования NSNumberFormatter.
Урезанный пример ...
На детской площадке Xcode у меня есть:
let numberFormatter = NSNumberFormatter()
//numberFormatter.numberStyle = .DecimalStyle - does not change behavior
let numberString = "546000.06"
let number: NSNumber = numberFormatter.numberFromString(numberString)!
print("number: \(number)")
let number1: NSNumber = NSDecimalNumber(string: numberString)
print("number1: \(number1)")
Это вывод:
number: 546000.0600000001
number1: 546000.06
Обратите внимание, что установка numberStyle в .DecimalStyle ничего не меняет.
Эта проблема возникает только для определенных числовых значений (например, 8.03 является еще одним). Я думал, что NSNumberFormatter был безопасен для этого типа преобразования, и я не видел много шума об этой проблеме в Интернете, поэтому я хочу предположить, что я что-то не так делаю.
Кто-нибудь может объяснить, что я вижу? Любая помощь очень ценится!