Какие гарантии дает стандарт C++ для сужения преобразования от double до int?

Какие гарантии дает стандарт C++ для сужения преобразования типов типа double в int? Это так же, как Java, как объяснено в Q31328190:

1 ответ

Решение

Нет, это не то же самое, что в Java. Если математический результат "усечь дробную часть" не может быть представлен целевым типом, поведение не определено.

Из 4.9 [conv.fpint]/1 ("Плавающие-интегральные преобразования"):

Значение типа с плавающей запятой может быть преобразовано в значение типа целого числа. Усечение преобразования; то есть дробная часть отбрасывается. Поведение не определено, если усеченное значение не может быть представлено в типе назначения.

Другие вопросы по тегам