Сколько бит(байт) занимают типы данных с плавающей запятой в C++?
Например, int занимает 4 байта
По современному консенсусу, да. Но иногда может занимать 2 байта (меньше — вроде нет).В случае с double можно задать абсолютно любое числоdouble x = 1e500;
Ответ статического анализатора Clang: magnitude of floating-point constant is too large for type 'double'; maximum is 1.79…E+308
На число 1.23456789012345678901234 не жалуется, но учите матчасть — относительная точность double 52 двоичных цифры (исключая головную единицу), или около 16 десятичных.для чего в конце приписывают 'f' ,когда пользуются типом данных float?
Чтобы расчёт float x; return x + 12.34f вёлся в менее точном типе float, а не double.
А вот коду float x = 12.34; это совершенно не нужно, компилятор и сам поймёт, что преобразование double → float можно сделать при компиляции.Сколько бит(байт) занимают типы данных с плавающей запятой в C++?
Зависит от машины, но по выработанному консенсусу — float 4, double 8.
Нестандартная (присущая x86) реализация long double имеет 10 значащих байтов, но 12 или 16 вместе с выравниванием.
int занимает 4 байт
Не всегда. Зависит от платформы. Вы всегда можете проверить написав sizeof(int), sizeof(double) и т.п.Но в случае с double можно задать абсолютно любое число,да еще и указать множество цифр после запятой.Как это работает?
Числа с плавающей точкой (запятой) имеют ограничение по точности. Т.е. В общем случае A + B ≈ С;