声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2073|回复: 4

[综合讨论] 【求助】关于双精度数来表达数

[复制链接]
发表于 2008-11-26 22:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
[size=133%]–下边3个式子的计算结果是相同的,但是由于这些数字都是使用二进制存储的,在使用双精度数来表达这些数时,往往就会出现一些误差

[size=111%]•>> a=0.33-0.5+0.17
[size=111%]•a =
[size=111%]•
2.7756e-017

[size=111%]•>> b=0.33+0.17-0.5
[size=111%]•b =
[size=111%]•
0

[size=111%]•>> c=0.17-0.5+0.33
[size=111%]•c =
[size=111%]•
5.5511e-017

[size=111%]•>>




谁能具体解释一下,谢谢,小弟初学
Q35750881
回复
分享到:

使用道具 举报

发表于 2008-11-27 10:14 | 显示全部楼层
你到底要干什么,没有看清楚。就你所说的而言,只是matlab的显示问题,你可以改变显示格式呀,至于matlab内核计算都是采用双精度数来进行的,跟你说的显示没有关系的。
发表于 2008-11-27 10:56 | 显示全部楼层
vpa()
发表于 2008-11-27 15:40 | 显示全部楼层

回复 楼主 hammerlxf 的帖子

浮点数的计算总是会有些误差的,双精度的精度也就是在1e-16,再小的数基本上就是虚假的了。
发表于 2008-11-27 15:47 | 显示全部楼层
不是matlab的显示问题, 而是任何数值分析都会遇到的问题, 属於rounding(or truncation) error
论坛上类似帖很多如
http://forum.vibunion.com/forum/thread-50477-1-1.html (13F是正解)
http://forum.vibunion.com/forum/thread-46198-1-1.html
http://forum.vibunion.com/forum/viewthread.php?tid=70085

"...双精度的精度也就是在1e-16,再小的数基本上就是虚假的了"
对楼上的说明, 补充一下
是相对精度eps(约2.22e-16), 而最小的数为realmin(约2.225e-308)

[ 本帖最后由 ChaChing 于 2008-11-27 15:56 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 01:34 , Processed in 0.058384 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表