MATLAB Answers

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

2 views (last 30 days)
mathmach
mathmach on 30 Jul 2020
Commented: mathmach on 30 Jul 2020
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)

Community Treasure Hunt

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

Start Hunting!