(РЕДАКТИРОВАТЬ: вопрос был немного изменен - в частности, в одном месте он ссылался на Java.)
Целочисленные типы в Java не имеют представления бесконечности, "не числовые значения и т. д., в то время как типы IEEE-754 с плавающей запятой, такие как float
и double
, делают.Это так просто, правда.На самом деле это не «реальная» и «целочисленная» разница - например, BigDecimal
также представляет действительные числа, но это также не имеет представления бесконечности.
EDIT:Просто чтобы быть понятным, этот * специфичен для конкретного языка / платформы, так как вы можете создать свой собственный язык / платформу, которая работает по-другому.Однако базовые процессоры обычно работают одинаково - поэтому вы обнаружите, что многие, многие языки ведут себя таким образом.
РЕДАКТИРОВАТЬ: С точки зрения мотивация , имейте в виду, что дляВ частности, в случае бесконечности существуют способы добраться до бесконечности без деления на ноль - например, деление на очень, очень маленькое число с плавающей запятой.В случае целых чисел, очевидно, нет ничего между нулем и единицей.
Также имейте в виду, что случаи, в которых используются целые числа (или десятичные типы с плавающей запятой), как правило, не нуждаются в понятии бесконечности, илирезультат «не число» - тогда как в научных приложениях (где float
/ double
обычно более полезны), «бесконечность» (или, по крайней мере, «число, которое слишком велико, чтобы разумно представлять») все еще потенциальнодействительный результат.