| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1106 人关注过本帖
标题:请教一个c语言输出printf的问题
只看楼主 加入收藏
薛琅
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2012-3-15
收藏
得分:2 
计算机是以二进制存贮数据的,精度越大表示的数据越精确,换句话说是不可能表示完所有的数据,必然回存在一点误差。可以用模/数转换的列子来理解,数字量的位数越高,转换的精度越高,而位数越少,转换的精度也越低。
2013-09-15 22:32
wwflzj
Rank: 1
等 级:新手上路
帖 子:3
专家分:3
注 册:2013-9-13
收藏
得分:2 
首先, 要先清楚常量是以什么形式的二进制存储在计算机中:
printf 中涉及的float浮点数据类型是以IEEE754标准转化为二进制代码的,
具体的可以找一下关于IEEE754标准的有关文章看看,这种代码主要用在数据信息采集上 不在c重点内,
主要记住IEEE754 不能精确存储就可以了!~
for(i=1;i<len;i++) 如果定义变量len = 15;len是浮点型的话,那么len有可能转化成14.9976 也有可能是15.0012
希望对你有帮助!~
2013-09-15 23:04
busizhishen
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2013-9-16
收藏
得分:2 
是这样的,float双精度在存储时不能精确存储,会丢失精度,小数点后第七位不管是几,我们都是人为这个数值是正确存储了的。
2013-09-16 09:22
huta28
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2013-9-10
收藏
得分:2 
把float改成double就成了。。。
2013-09-16 17:50
快速回复:请教一个c语言输出printf的问题
数据加载中...
 
   



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

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