Обработка переполнения при преобразовании чисел типа double в целые числа в C

limits.h имеет константы для максимальных typecast и минимальных возможных значений cxx для целочисленных типов данных, вы c можете проверить двойную typecast переменную перед преобразованием, например

if (my_double > nextafter(INT_MAX, 0) || my_double < nextafter(INT_MIN, 0))
    printf("Overflow!");
else
    my_int = (int)my_double;

РЕДАКТИРОВАТЬ: nextafter() решит cxx проблему, упомянутую nwellnhof

c++

c

casting

floating-point

2022-11-02T17:19:28+00:00
Вопросы с похожей тематикой, как у вопроса:

Обработка переполнения при преобразовании чисел типа double в целые числа в C