swift: проблема преобразования строки в двойную
Вот простой код в игровой площадке Xcode 7.3.1:
var str = "8.7" print(Double(str))
выход удивительный:Optional(8.6999999999999993)
также,Float(str)
дает:8.69999981
Есть какие-нибудь мысли или причины на этот счет? Любые ссылки на это будут оценены.
Кроме того, как мне тогда преобразовать "8.7" в 8.7 как Double (или Float)?
редактировать
в кратчайшие сроки:
(str как NSString) .doubleValue возвращает 8,7
Теперь это нормально. Но мой вопрос, по-прежнему, не дает полного ответа. Мы нашли альтернативу, но почему мы не можем полагаться на Double ("8.7"). Пожалуйста, дайте более глубокое понимание этого.
Редактировать 2
(«6,9» как NSString) .doubleValue // печатает 6.9000000000000004
Итак, вопрос снова открывается.