Строго говоря, 1.0/0.0
вовсе не бесконечность, это неопределенное значение.
Как сказал Дэвид в своем ответе, у Float есть способ выразить число, которое находится не в диапазоне от наибольшего числа, которое он может представлять, и от наименьшего.Эти значения известны под общим названием «Не число» или просто NaN.NaN также могут возникать из вычислений, которые действительно бесконечны (например, lim<sub>x -> 0</sub> ln<sup>2</sup> x
), значения, которые являются конечными, но могут превышать значения, которые могут представлять значения с плавающей запятой (например, 10 100 100 ).в качестве неопределенных значений, таких как 1 / 0.
Числа с плавающей запятой не совсем четко различают неопределенные значения, переполнение и бесконечность;какая комбинация битов получается в результате этого расчета, зависит.Поскольку просто печатать «NaN» или «Not a Number» немного сложнее для людей, которые не знают, как представлены значения с плавающей запятой, этот форматтер просто печатает «Infinity» или иногда «-Infinity», так как он обеспечивает то же самоеуровень информации, когда вы знаете, что такое FP NaN, и имеет некоторое значение, когда вы этого не делаете.
Целые числа не имеют ничего похожего на NaN с плавающей запятой.Так как нет целого значения для целочисленного значения, когда вы делаете 1/0, остается только вызвать исключение.
Тот же код, написанный на машинном языке, может вызывать прерывание, сравнимое с исключением Java, или устанавливать регистр условий, который будет глобальным значением, указывающим, что последний расчет был делением на ноль.,какие из них доступны, зависит от платформы.