|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 实数在内存中的存储误差是怎样引起的呢???
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2732
人关注过本帖
标题:
实数在内存中的存储误差是怎样引起的呢???
只看楼主
加入收藏
王璐
等 级:
论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
结帖率:
93.1%
楼主
收藏
已结贴
√
问题点数:10 回复次数:11
实数在内存中的存储误差是怎样引起的呢???
实数在内存中的存储误差是怎样引起的呢???
比如说输出123.456,却输出的是123.456001,以%f格式输出。
搜索更多相关主题的帖子:
内存
实数
误差
2010-08-11 23:58
举报帖子
使用道具
赠送鲜花
carmeloyin
来 自:西安
等 级:
论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
第
2
楼
收藏
得分:1
这个应该关系到硬件的处理体系了吧
我也不明白
以前到是看过类似偏差原因的解释
但是大概是糊里糊涂的知道梗概
现在又忘记了
2010-08-12 00:29
举报帖子
使用道具
赠送鲜花
Rexfield
来 自:幻想乡
等 级:
侠之大者
威 望:
1
帖 子:240
专家分:484
注 册:2010-7-28
第
3
楼
收藏
得分:1
浮点失真问题,这个是一直令人头疼的东西。
LZ可以参考有关浮点移码的知识和IEEE的相关定义。
If you're not failing every now and again, it's a sign you're not doing anything very innovative.
2010-08-12 00:46
举报帖子
使用道具
赠送鲜花
cnfarer
等 级:
版主
威 望:
179
帖 子:3330
专家分:21157
注 册:2010-1-19
第
4
楼
收藏
得分:1
这其实是数制转换问题!二进制数<-->浮点数,自己转换一下看看就知道了!
★★★★★
为人民服务
★★★★★
2010-08-12 07:14
举报帖子
使用道具
赠送鲜花
waterstar
等 级:
小飞侠
威 望:
5
帖 子:984
专家分:2810
注 册:2010-2-12
第
5
楼
收藏
得分:1
存储在计算机里都是二进制,不可能所有的数都正好可以完全换成二进制数
冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-08-12 20:20
举报帖子
使用道具
赠送鲜花
BlueGuy
等 级:
版主
威 望:
29
帖 子:4476
专家分:4055
注 册:2009-4-18
第
6
楼
收藏
得分:1
1/3
我就是真命天子,顺我者生,逆我者死!
2010-08-12 22:13
举报帖子
使用道具
赠送鲜花
forever74
来 自:CC
等 级:
版主
威 望:
58
帖 子:1706
专家分:4350
注 册:2007-12-27
第
7
楼
收藏
得分:1
以下是引用
王璐
在2010-8-11 23:58:45的发言:
实数在内存中的存储误差是怎样引起的呢???
比如说输出123.456,却输出的是123.456001,以%f格式输出。
具体到这个问题,是因为float类型只能保证6-7位有效数字,而%f格式符强制输出6位小数,
就你的例子而言,由于3个整数位的存在,6位小数实际等同于9个有效数字了,
没有保存那么多,还得输出那么多,于是只好瞎编了
----关键是这句话:这个例子演示的不是计算误差,而是C语言被迫瞎编部分输出结果。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-08-13 10:48
举报帖子
使用道具
赠送鲜花
forever74
来 自:CC
等 级:
版主
威 望:
58
帖 子:1706
专家分:4350
注 册:2007-12-27
第
8
楼
收藏
得分:0
而对于浮点误差,其来源很简单:
多数有限长度的十进制浮点小数在转换成二进制的时候会变成无限长度,而实际上变量只能表示有限的位数,后面舍掉的就是误差。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2010-08-13 10:53
举报帖子
使用道具
赠送鲜花
清风拂晓
来 自:火星
等 级:
蝙蝠侠
威 望:
1
帖 子:356
专家分:889
注 册:2010-8-13
第
9
楼
收藏
得分:1
%f是浮点数输出它这个有很多位数 你要在 %mf m就是规定字符的长度就可以了
清风拂暮(木)
2010-08-13 10:57
举报帖子
使用道具
赠送鲜花
succubus
等 级:
蜘蛛侠
威 望:
4
帖 子:635
专家分:1080
注 册:2007-10-7
第
10
楼
收藏
得分:1
研究下IEEE-754自然就全明白了。。。
[url=http:///view/aDU1]
/image/aDU1.gif" border="0" />[/url]
2010-08-13 11:01
举报帖子
使用道具
赠送鲜花
12
1/2页
1
2
快速回复:
实数在内存中的存储误差是怎样引起的呢???
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.017021 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved