我的平台是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