搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 实数在内存中的存储误差是怎样引起的呢???
标题:
实数在内存中的存储误差是怎样引起的呢???
只看楼主
王璐
等 级:
论坛游民
帖 子: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
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册: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
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册: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
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-315466-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018877 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved