MATLAB Answers

It's a bug?

1 view (last 30 days)
Emiliano Rosso
Emiliano Rosso on 29 Nov 2018
Edited: madhan ravi on 29 Nov 2018
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 Comment

Bruno Luong
Bruno Luong on 29 Nov 2018
Welcome to the club, you are one more person who confuses about finite precision floating point calculation.

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 29 Nov 2018
Edited: madhan ravi on 29 Nov 2018
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 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.