Какие гарантии дает стандарт C++ для сужения преобразования от double до int?
Какие гарантии дает стандарт C++ для сужения преобразования типов типа double в int? Это так же, как Java, как объяснено в Q31328190:
1 ответ
Решение
Нет, это не то же самое, что в Java. Если математический результат "усечь дробную часть" не может быть представлен целевым типом, поведение не определено.
Из 4.9 [conv.fpint]/1 ("Плавающие-интегральные преобразования"):
Значение типа с плавающей запятой может быть преобразовано в значение типа целого числа. Усечение преобразования; то есть дробная часть отбрасывается. Поведение не определено, если усеченное значение не может быть представлено в типе назначения.