楼主: histidine
2141 6

[问答] matla的减法?! [推广有奖]

  • 0关注
  • 0粉丝

本科生

55%

还不是VIP/贵宾

-

威望
0
论坛币
1090 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
75 点
帖子
78
精华
0
在线时间
119 小时
注册时间
2007-11-22
最后登录
2025-1-5

楼主
histidine 发表于 2011-10-4 06:02:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
下午发现的,有人能告诉我这个问题的原理么?很难理解,先谢谢啦
>> a=5.1;
>> b=5;
>> (a-b) == 0.1
ans =
     0

二维码

扫码加我 拉你入群

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

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

关键词:matla Atl Mat ans

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

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

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

板凳
lk1966mail 发表于 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,都可以判断

报纸
cjblovebj 发表于 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

>> 简单问题复杂化了吧!
尽最大努力,做最坏打算!

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

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

7
matlab-007 发表于 2016-7-28 21:34:41
因为你的数据宽度不够。
long
然后再输入你的算式。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-22 16:15