- 论坛徽章:
- 0
|
- #include <cstdio>;
- int main()
- {
- float f1 = 3.402823466e+38f;
- printf( "f1 = %.9e\n", f1 );
- float f2 = 3.302823466e+38f;
- printf( "f2 = %.9e\n", f2 );
- float f3 = 3.402823466e+35f;
- printf( "f3 = %.9e\n", f3 );
- float f4 = 3.40282346e+38f;
- printf( "f4 = %.8e\n", f4 );
- return 0;
- }
复制代码
运行结果:
- f1 = 3.402823466e+038
- f2 = 3.302823480e+038
- f3 = 3.402823435e+035
- f4 = 3.40282347e+038
复制代码
我从FLOAT.H中找到:
- #define FLT_MAX 3.402823466e+38F /* max value */
复制代码
即上面代码中f1是float型的最大值,它的打印信息是正确的,可是f2,f3,f4都是小于f1的,为什么反而打印不对正确的信息呢? |
|