声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 894|回复: 3

[编程技巧] 救救我...一樣number都判斷不出來

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

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

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

x
在matlab中遇到精度問題,測試過好多情況,為什麼會有下面的情況,精度和數字相等,卻判斷不出來?
function test22
format long
newpoint=0;
x=0.33333
y=vpa(1/3,5)

        if (x==y)
            newpoint=2
        elseif (y~=x)
           newpoint=1
           end
       end

點解ans是
x = 0.333330000000000
y =.33333
newpoint =1
我吾明白?why?
麻煩各位大大救我
回复
分享到:

使用道具 举报

发表于 2008-11-30 23:13 | 显示全部楼层
可以用差的绝对值和一个很小的数比较作为判断条件

评分

1

查看全部评分

发表于 2008-12-1 11:56 | 显示全部楼层
数值可以和symbolic比较吗? symbolic我不熟
但改为 if(x==double(y)), newpoint=2, elseif (double(y)~=x), newpoint=1, end 是OK的
建议使用下列较好
if (x-double(y))<=eps, newpoint=2; else newpoint=1; end

评分

1

查看全部评分

 楼主| 发表于 2008-12-1 23:10 | 显示全部楼层
解決了對比的問題,我真是初哥哦.!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-2 21:34 , Processed in 0.067840 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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