Can anybody help this loop question?

Temp = 20;
g = 0.1;
x = 0.11;
while(Temp > 0 && x ~= g)
Temp = Temp -1
x = x -0.001
if(x==g)
print('lalala')
end
end
Running code shown above should give me a 'lalala' message in commond window at 10th loop, but I didn't get it and also it didn't break the while loop when x==g;
I added a break point inside the loop and trying to run in step, I get results in the figure below and matlab judge that x==g is logic 0 while they should equal to each other.
Can somebody help explain it?
微信图片_20190221020958.png

 Réponse acceptée

KSSV
KSSV le 21 Fév 2019
Modifié(e) : KSSV le 21 Fév 2019
Temp = 20;
g = 0.1;
x = 0.11;
while(Temp > 0 && x ~= g)
Temp = Temp -1
x = x -0.001
if abs(x-g)<=10^-3
disp('lalala')
end
end
Read about how to compare flottant numbers.

1 commentaire

Stephen23
Stephen23 le 21 Fév 2019
Modifié(e) : Stephen23 le 21 Fév 2019
Note: "flottant numbers" are known as floating point numbers in English:
They are known as "flottante" in French.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by