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

 채택된 답변

KSSV
KSSV 2019년 2월 21일
편집: KSSV 2019년 2월 21일

0 개 추천

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

Stephen23
Stephen23 2019년 2월 21일
편집: Stephen23 2019년 2월 21일
Note: "flottant numbers" are known as floating point numbers in English:
They are known as "flottante" in French.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

질문:

2019년 2월 21일

댓글:

2019년 2월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by