房天下问答 >业主生活>其他> 问题详情

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 06:08

其他答案

whd2000

float精度不高,保存小数的位没double多。假如float用8位保存小数点后的数据,精度是2的负8次方,也就是1/256 的精度,而double比float多,比如说是16位,就是1/65536 的精度。需要明白的是,浮点数表示的数是有限的,不可能表示所有的实数,由于精度的原因,会有偏差。你可以换成double型,显示的结果就会更精确了。
2010-12-29 13:00
来自北京市

免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。

关于我们网站合作联系我们招聘信息房天下家族网站地图意见反馈手机房天下开放平台服务声明加盟房天下
Copyright © 北京搜房科技发展有限公司
Beijing SouFun Science&Technology Development Co.,Ltd 版权所有
违法信息举报邮箱:jubao@fang.com
返回顶部
意见反馈