Преобразование из числа с меньшим диапазоном величины (например, int в long или long для float) называется расширением.Целью расширения конверсий является отсутствие изменения величины числа при сохранении максимально возможной точности.Например, преобразование int 2147483647 в число с плавающей точкой дает 2,14748365e9 или 2 147 483 650.Разница обычно невелика, но она может быть значительной.
И наоборот, преобразование, при котором существует вероятность потери информации о величине числа (например, long to int или double to long), называется сужением.При сужающихся конверсиях некоторая информация может быть потеряна, но при возможности можно найти ближайшее представление.Например, преобразование числа с плавающей точкой 3.0e19 в long дает -9223372036854775807, совсем другое число.