While loop iterating further than expected?
5 views (last 30 days)
Show older comments
Commented: OCDER on 29 Aug 2018
Hi. I am experiencing a strange behavior in this simple script:
% CASE 1 - COMPUTES CORRECTLY
% CASE 2 - DOES NOT COMPUTE CORRECTLY
I obtain m1 = 4.8, as expected. However, I obtain m2 = 5.0, which implies the loop in CASE 2 has gone on for one iteration too many. Any idea why this might be happening? Is it a precision-related issue? I'm afraid I must be missing something very silly. Thank you for your help.
Edited: OCDER on 29 Aug 2018
Rounding error. Try something like this:
while m1 < 4.80
m1=round(m1+0.1, 2); %To prevent m1 from drifting too far due to rounding error
% CASE 2
while m2 < 4.90
More Answers (0)
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!