首页 > 用户发贴区 > 编程问题提问区 > 浮点型变量小问题,还请大虾说明下原理?
2008
11-07

浮点型变量小问题,还请大虾说明下原理?

#include<stdio.h>


int main()
{
   float a=88888.88888;
   double b=8888888888.888888888;


   printf(“a is %f\n”,a);
   printf(“b is %f\n”,b);
}


运算后,a=88888.890625
        b=8888888888.888889



问题:1.  a是单精度浮点型,有效位7位。整数位占5位,小数点后两位为无效位,小数部分的9四舍五入后面的0625是什么意思?
      2.  b是双精度,我吧小数点后面的8换成全5和全6的时候,并没有四舍五入而是输出如下:
          b=8888888888.555555或b=8888888888.666666
          当换成全7时,输出如下:
          b=8888888888.777779
          问:时候双精度,只有7以上的数字才四舍五入?


浮点型变量小问题,还请大虾说明下原理?》有 1 条评论

  1. 465504453 说:

    后面的0625不是有效位,应该是随机生成的。

    第二个问题,建议你上网查一下,我也说不明白,虽然脑子里知道怎么回事。

留下一个回复