Обработка переполнения при преобразовании чисел типа 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
2021-12-14T22:36:22+00:00
2022-11-02T17:19:28+00:00
Gachimuchi
Вопросы с похожей тематикой, как у вопроса:
Обработка переполнения при преобразовании чисел типа double в целые числа в C
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.