关于float输出误差的问题
main(){
float a=1234.5678;
printf("%f",a);
}
结果是1234.567749
是不是计算机用2进制位数不够产生的误差?怎么算?
谢谢
----------------解决方案--------------------------------------------------------
main()
{
double a=1234.5678;
printf("%f",a);
}
float型变量只能接受7位有效数字
----------------解决方案--------------------------------------------------------
1234.56 为真实输出..(7位)
----------------解决方案--------------------------------------------------------
这是一个关于float的存储问题
因为浮点数的有效值为7位,所以只能保证前面的7位的值为正确值。
而具体浮点数分为符号位、基数、指数,而有效值是针对指数位。
具体你可以搜索一下。
我怕误导你。还是不说得好。
在里面我转贴了一篇关于浮点数的文章。那里面很详细
----------------解决方案--------------------------------------------------------
那意思是不是说FLOAT 32位2进制只能表示7位啊,那后面的尾数怎么算?
一会吃完饭搜下楼上仁兄的贴
----------------解决方案--------------------------------------------------------