для двойного или плавающего,
1. -inf < inf == true
2. inf + inf == inf
3. -inf - inf == -inf
4. positive / 0.0 == inf
5. negative / 0.0 == -inf
6. any real number < inf == true
7. -inf < any real number == true
Это утверждение верно?
Мы не знаем (inf < inf)
, но мы можем быть уверены, что это не исключение.
Все выражения 1-7 в вашем вопросе оцениваются как true
когда компилируется компилятором, который реализует правила IEEE 754. Ни один из них не зависит от режима округления. Для многих это просто потому, что <
а также ==
точные операции. К тому же, -inf - inf
всегда -inf
(то есть во всех режимах округления), positive / 0.0
всегда +inf
, а также negative / 0.0
всегда -inf
,
В 6. и 7. ниже обычно называют значения, которые вы называете «конечными», а не «действительными».
любое действительное число < инф == правда
-инф < любое действительное число == верно
inf < inf
всегда оценивается как ложное. Это, как и все свойства 1-7 в вашем вопросе, следует считать условным. Было решено сделать inf
равных себе, так что он не строго меньше, чем он сам. Все эти варианты предназначены для того, чтобы сделать арифметику IEEE 754 максимально полезной на практике. Другими словами, предполагалось иметь как можно больше реализуемых алгоритмов без необходимости явно проверять эти специальные значения, и вычисления продолжали иметь смысл (когда это применимо), когда они происходят. Когда специальные значения не имеют смысла, конечно, всегда есть возможность проверить их.