房天下 > 房天下问答 > 业主生活 > 其他
  • C语言:float型与double型的转换问题

    main(){int a;float b,c;a=12;b=365.2114;c=(float)a+_b;printf("a=%d,b=%f,c=%f\n",a,b,c);}为什么输出的时候b不是365.211400,而是365.211395?

    提问者:hayes888

    发布于2010-12-29

共1个回答
  • whd2000 丨Lv 2
    float精度不高,保存小数的位没double多。假如float用8位保存小数点后的数据,精度是2的负8次方,也就是1/256 的精度,而double比float多,比如说是16位,就是1/65536 的精度。需要明白的是,浮点数表示的数是有限的,不可能表示所有的实数,由于精度的原因,会有偏差。你可以换成double型,显示的结果就会更精确了。
    +11 2010-12-29 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。