标题:关于float输出误差的问题
只看楼主
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
 问题点数:0 回复次数:4 
关于float输出误差的问题
main()
{
float a=1234.5678;
printf("%f",a);
}
结果是1234.567749
是不是计算机用2进制位数不够产生的误差?怎么算?
谢谢
搜索更多相关主题的帖子: float 误差 输出 
2006-02-18 15:46
fly7896
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-2-8
得分:0 
main()
{
double a=1234.5678;
printf("%f",a);
}
float型变量只能接受7位有效数字

2006-02-18 17:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

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


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-02-18 17:35
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
得分:0 

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


2006-02-18 18:00
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
得分:0 
那意思是不是说FLOAT 32位2进制只能表示7位啊,那后面的尾数怎么算?
一会吃完饭搜下楼上仁兄的贴
2006-02-18 19:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-46138-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.589964 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved