Сужающее преобразование числа с плавающей запятой в целочисленный тип T выполняется в два этапа:
На первом шаге число с плавающей точкой преобразуется либо в длинное, если T длинное, либо в int, если T байтовое, короткое, char или int, следующим образом:
Если число с плавающей запятой равно NaN (§4.2.3), результатом первого шага преобразования будет int или long 0.
В противном случае, если число с плавающей запятой не являетсяНа бесконечности значение с плавающей запятой округляется до целого значения V с округлением до нуля с использованием режима округления до нуля IEEE 754 (§4.2.3). Тогда есть два случая:
Если T длинный, и это целочисленное значение может быть представлено как long, то результатом первого шага будет длинное значение V.
В противном случае, еслиэто целочисленное значение может быть представлено как int, тогда результатом первого шага будет значение int V.
В противном случае один из следующих двух случаев должен быть истинным:
Значение должно бытьбыть слишком маленьким (отрицательное значение большой величины или отрицательная бесконечность), и результатом первого шага является наименьшее представимое значение типа int или long.
Значение должно быть слишком большим (aположительное значение большой величины или положительная бесконечность), а результатом первого шага является наибольшее представимое значение типа int или long.