It's a bug?

2 次查看(过去 30 天)
Emiliano Rosso
Emiliano Rosso 2018-11-29
编辑: madhan ravi 2018-11-29
I discovered a potential bug and I want to report it:
Matlab R2018a windows 10
alfa=-0.0052+(61-1)*0.0001;
reasoning this is 0.0060-0.0052=0.0008=8e-04
so:
alfa2=8e-04;
isequal(alfa,alfa2)
ans
0
if you open alfa variable you can see:
8.000000000000004e-04
in fact if you round alfa:
alfa3=round(alfa,10);
isequal(alfa2,alfa3)
ans
1
That's all Thanks
  1 个评论
Bruno Luong
Bruno Luong 2018-11-29
Welcome to the club, you are one more person who confuses about finite precision floating point calculation.

请先登录,再进行评论。

采纳的回答

madhan ravi
madhan ravi 2018-11-29
编辑:madhan ravi 2018-11-29
It‘s called floating point comparison just search with the tag floating-point in this forum you will find lot of reasons
abs(alfa-alfa2)<1e-04

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by