| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1115 人关注过本帖
标题:关于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
快速回复:关于float输出误差的问题
数据加载中...
 
   



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

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