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

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

1

Решение

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

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

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

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]