if(0.41 == (41*0.01)) is False and if(0.42 == (42*0.01)) is True .. Why?

1 view (last 30 days)
In following script, I am getting 'false' for first condition and 'true' for second condition.
clc
clear all
if(0.41 == (41*0.01)) %First Condition
disp('true')
else
disp('false')
end
if(0.42 == (42*0.01)) %Second Condition
disp('true')
else
disp('false')
end
  2 Comments
mathmach
mathmach on 30 Jul 2020
Thanks for these links :)
Now I got it and will read more on it.

Sign in to comment.

Accepted Answer

KSSV
KSSV on 30 Jul 2020
Read about comparing floating-point numbers.
tol = 10^-5 ;
if(abs(0.41-(41*0.01)<=tol)) %First Condition
disp('true')
else
disp('false')
end
if(abs(0.42 - (42*0.01))<=tol ) %Second Condition
disp('true')
else
disp('false')
end

More Answers (0)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!