Всякий раз, когда вы пытаетесь напечатать значение FLT_MIN из стандартного заголовочного файла
float.h, вы получите 0,000000 (как вы видите на экране вывода).
Это на самом деле не ошибка. Вы получаете этот результат, потому что спецификатор формата% f.
Обычно% f выводит 6 цифр после десятичной запятой, но в этом случае отрицательное значение со знаком настолько мало, что вам необходимо напечатать значительное количество цифр после запятой.
Я использовал% .54f (зависит от машины), чтобы получить желаемый
результат (0,000000000000000000000000000000000000011754943508222875 для моей системы).
// Проверьте это в вашей системе
#include<stdio.h>
#include<float.h>
int main()
{
printf("Minimum signed float %.55f\n",FLT_MIN);
printf("Minimum signed float %e\n",FLT_MIN);
return 0;
}
// Вывод: -
// Минимальное число с плавающей запятой 0,0000000000000000000000000000000000000117549435082228750
// Минимальное число с плавающей запятой 1.175494e-038
Я думаю, теперь вам понятно, почему вы получаете 0,000000 за CHAR_MIN и как
чтобы получить правильный результат с тем же спецификатором формата. Хотя вы можете использовать% e для лучшего форматированного результата.