Equality operator error with exact same value

조회 수: 4 (최근 30일)
Glenn Franco Gacal
Glenn Franco Gacal 2022년 4월 13일
댓글: Steven Lord 2022년 4월 14일
I have the following code and it presents a bug:
data = 22.7:0.1:24.2; TEMP(1) = 23.1;
if TEMP(1) == data(5)
3-2 %this is only sample effect
else
5-2 %this is only sample effect
end
This outputs
3
But if I use
if TEMP(1) == 23.1
3-2 %this is only sample effect
else
5-2 %this is only sample effect
end
This outputs
1
You can see from the "data" matrix that data(5) is 23.1.
What kind of bug is this and how can I avoid this kind of bug in the future? I've tried 2 different PCs with different MATLAB versions and they both have the same problem.

채택된 답변

Steven Lord
Steven Lord 2022년 4월 13일
This is not a bug. See the section "Avoiding Common Problems with Floating-Point Arithmetic" on this documentation page.
  댓글 수: 2
Glenn Franco Gacal
Glenn Franco Gacal 2022년 4월 14일
Thank you for your clarification and I apologize for this noob dilemma!
Steven Lord
Steven Lord 2022년 4월 14일
No need to apologize. You aren't the first person to encounter this behavior (it's a common enough question that our documentation staff created a documentation page for it, after all) and you almost certainly won't be the last.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by