全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2087 6
2011-10-04
下午发现的,有人能告诉我这个问题的原理么?很难理解,先谢谢啦
>> a=5.1;
>> b=5;
>> (a-b) == 0.1
ans =
     0

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-10-4 06:09:25
==   是表示判断,若是两侧相等,则返回1,不等返回0
=      是表示等于的意思

你的程序中 (a-b) == 0.1 语句表示判断是否相等,其实不等,故返回0
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-4 23:37:26
lk1966mail 发表于 2011-10-4 06:09
==   是表示判断,若是两侧相等,则返回1,不等返回0
=      是表示等于的意思
谢谢,其实我就是想知道 a-b 怎么就不等于 0.1 了,如果不等,那等于什么呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-5 07:41:08
histidine 发表于 2011-10-4 23:37
谢谢,其实我就是想知道 a-b 怎么就不等于 0.1 了,如果不等,那等于什么呢?
不好意思,看错问题了。

您的问题确切答案我不知道。但是我猜测是因为matlab存储double型数据时采用的是极限的方式,即任何double型数它都认为是个极限。所以a-b=0.1000000。 matlab不认为它真正等于0.1

建议:您可以采用如下判断方式:a-b-0.1 < 0.0001,这样就行了。只要后面那个数0.0001不等于0,都可以判断
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-5 11:31:19
histidine 发表于 2011-10-4 23:37
谢谢,其实我就是想知道 a-b 怎么就不等于 0.1 了,如果不等,那等于什么呢?
>> clear;
>> a=5.1;
>> b=5;
>> a-b

ans =

    0.1000

>> 简单问题复杂化了吧!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-5 22:33:12
lk1966mail 发表于 2011-10-5 07:41
不好意思,看错问题了。

您的问题确切答案我不知道。但是我猜测是因为matlab存储double型数据时采用的 ...
了解,谢谢啦~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群