永发信息网

matlab逻辑等于错误,语句a=1.1;a==(1.2-0.1)为什么得到的结果是0

答案:5  悬赏:50  手机版
解决时间 2021-11-09 16:13
  • 提问者网友:欲劫无渡
  • 2021-11-09 07:07
matlab逻辑等于错误,语句a=1.1;a==(1.2-0.1)为什么得到的结果是0
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-11-09 08:12
应该是精度的问题。计算机用0,1表示的时候。eps
ans =

2.2204e-016
这是计算机能表示的最小的数,然后数据表示的时候有误差。当误差大于eps时,可能就导致了上述错误。
另外我测试了一些其他的。
k0=1.1==1.3-0.2
k1=1.1==1.2-0.1
k2=1.01==1.02-0.01
k3=1.001==1.002-0.001
k4=1.0001==1.0002-0.0001
k5=1.00001==1.00002-0.00001
k6=1.000001==1.000002-0.000001
k7=1.0000001==1.0000002-0.0000001
k8=1.00000001==1.00000002-0.00000001
k9=1.000000001==1.000000002-0.000000001
k10=1.0000000001==1.0000000002-0.0000000001
k11=1.00000000001==1.00000000002-0.00000000001
k12=1.000000000001==1.000000000002-0.000000000001
k13=1.0000000000001==1.0000000000002-0.0000000000001
k14=1.00000000000001==1.00000000000002-0.00000000000001
k15=1.000000000000001==1.000000000000002-0.000000000000001
最后只有
k0 =1
k2 =1
k4 =1
k10 =1
k11 =1
k14 =1

补充:
k1=vpa(1.1)==vpa(1.2-0.1)
k1 =1
但是
k6=vpa(1.000001)==vpa(1.000002-0.000001)
kk6=vpa(1.000001)==vpa(1.000002)-vpa(0.000001)
k6 = 0
kk6 =0
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-11-09 10:39
  • 2楼网友:时间的尘埃
  • 2021-11-09 10:24
1=(1-1)?追问嗯嗯?1.1==(1.2-0.1)的结果为0(假),但1.1==(1.3-0.2)却为1(真)追答是啊
  • 3楼网友:孤老序
  • 2021-11-09 10:19
等于2
  • 4楼网友:千夜
  • 2021-11-09 08:40
果然啊,好大一个bug
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯