此代码:
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);
}
返回:
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
float
是未签名还是已签名?为什么FLT_MIN
0
但另一方面我可以在float
中存储负值?
答案 0 :(得分:5)
FLT_MIN
的值是实现定义的,它不是零,而是正数(准确地说,它是最小标准化的正float
数)。它的一个典型值是1E-37
。
您的代码中的问题是,您使用%.5f
打印它,小数点后只有5位数。