当前位置: 代码迷 >> C语言 >> 关于float输出误差的问题
  详细解决方案

关于float输出误差的问题

热度:334   发布时间:2006-02-18 15:46:00.0
关于float输出误差的问题
main()
{
float a=1234.5678;
printf("%f",a);
}
结果是1234.567749
是不是计算机用2进制位数不够产生的误差?怎么算?
谢谢
搜索更多相关的解决方案: float  误差  输出  

----------------解决方案--------------------------------------------------------
main()
{
double a=1234.5678;
printf("%f",a);
}
float型变量只能接受7位有效数字
----------------解决方案--------------------------------------------------------

1234.56 为真实输出..(7位)


----------------解决方案--------------------------------------------------------

这是一个关于float的存储问题
因为浮点数的有效值为7位,所以只能保证前面的7位的值为正确值。
而具体浮点数分为符号位、基数、指数,而有效值是针对指数位。
具体你可以搜索一下。
我怕误导你。还是不说得好。
在里面我转贴了一篇关于浮点数的文章。那里面很详细


----------------解决方案--------------------------------------------------------
那意思是不是说FLOAT 32位2进制只能表示7位啊,那后面的尾数怎么算?
一会吃完饭搜下楼上仁兄的贴
----------------解决方案--------------------------------------------------------
  相关解决方案