主题:请教C语言里float存储和表示的问题,谢谢!!
我的平台是64位AIX,安装CC编译器
查看float.h
FLT_MAX 3.4028234663852886e+38F
FLT_MIN 1.1754843508222875e-38F
FLT_DIG 6
我用printf输出结果为
max=340282346638528859811704183485000000000.000000
min=0.000000
请问:
1、为什么输出的max与宏定义还有差别?
2、min=0,那么实际上负的浮点数怎么处理的?
3、我用下面的代码进行输出,为什么跟我想的不一样?按照规定小数点后6位,我给出的也是6位,怎么不能原样显示,这样在处理一些精度要求比较高的问题的时候不久除问题了吗?
float flt1,flt2;
flt1=99.999999;
flt2=-99.999999
printf("flt1=%f flt2=%f\n",flt1,flt2);
显示为100.000000 -100.000000
查看float.h
FLT_MAX 3.4028234663852886e+38F
FLT_MIN 1.1754843508222875e-38F
FLT_DIG 6
我用printf输出结果为
max=340282346638528859811704183485000000000.000000
min=0.000000
请问:
1、为什么输出的max与宏定义还有差别?
2、min=0,那么实际上负的浮点数怎么处理的?
3、我用下面的代码进行输出,为什么跟我想的不一样?按照规定小数点后6位,我给出的也是6位,怎么不能原样显示,这样在处理一些精度要求比较高的问题的时候不久除问题了吗?
float flt1,flt2;
flt1=99.999999;
flt2=-99.999999
printf("flt1=%f flt2=%f\n",flt1,flt2);
显示为100.000000 -100.000000