В Swift REPL:
$ swift
Welcome to Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42). Type :help for assistance.
1> Double.greatestFiniteMagnitude == (Double.greatestFiniteMagnitude - Double(1))
$R0: Bool = true
2>
То же самое верно для Float32
(и я бы предположил то же самое для других подобных типов)
Я прочитал это и различные другие страницы, посвященные теме неточностей с плавающей запятой, но, похоже, все они говорят о числах после десятичная точка является неточной.
Мои вопросы:
- Как это возможно, что вы не можете сохранить число, которое меньше вашего предполагаемого максимального значения?
- Это начинает происходить после определенного числа?
- Если только некоторыечисла не представимы, их можно предсказать?Сколько отдельных значений может быть сохранено с помощью
Double
или Float32
?