为什么浮点数0的最小值?

Kor*_*gay 0 c floating-point

这段代码:

int main(){

    printf("The value of FLT_MAX is %.5f\n", FLT_MAX);
    printf("The value of FLT_MIN is %.5f\n", FLT_MIN);
    printf("A float takes %i bytes\n", sizeof(float));

    float fx = -1.24;
    printf("The value of fx is %f\n", fx);

}
Run Code Online (Sandbox Code Playgroud)

收益:

The value of FLT_MAX is 340282346638528859811704183484516925440.00000
The value of FLT_MIN is 0.00000
A float takes 4 bytes
The value of fx is -1.240000
Run Code Online (Sandbox Code Playgroud)

float无符号数?为什么这是FLT_MIN 0另一方面我可以存储一个负值float

Yu *_*Hao 5

FLT_MIN实现定义的值,它不是零,而是正数(准确地说,它是最小标准化正float数).它的一个典型价值是1E-37.

您的代码中的问题是,您使用%.5f小数点后只有5位数打印它.