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

data formatfloating pointif elseif statementMATLAB

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

Best Answer

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