if statement inside a for loop not working

1 view (last 30 days)
Hi all,
Can someone please explain why this code is not working?
for a = 0.1:0.1:5
if a == 3
b = 1;
end
end
Once 'a' becomes 3, 'b' should be assigned a 1. But nothing happens.. Not sure what is going on

Accepted Answer

Adam
Adam on 5 Oct 2016
The representation of the results of floating point maths is not 100% accurate so you should never do a straight == between a number created via floating point maths and some other number. Always test within a tolerance.
  3 Comments
Jos (10584)
Jos (10584) on 5 Oct 2016
Welcome to the world of computers using a limited amount of bits to represent numbers!
fprintf('%.40f\n', 0.1)

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!