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 был безопасен для этого типа преобразования, и я не видел много шума об этой проблеме в Интернете, поэтому я хочу предположить, что я что-то не так делаю.

Кто-нибудь может объяснить, что я вижу? Любая помощь очень ценится!

Ответы на вопрос(2)

Ваш ответ на вопрос