Round error using if statement. Two things don't equal each other
이전 댓글 표시
Ok this is the problem I am having.
I have an M-File containing the following...
>> x = sin(pi/6)
>> y = cos(pi/6)
>> mytan = x/y;
>> if mytan == tan (pi/6)
disp('equal')
else
disp('not equal')
end
......
When I run it, I want to get 'equal' to display but I keep getting 'not equal'
I know x = .5000 or .500000000000000 using format long
and y = .8660 or .866025403784439 using format long.
now mytan = x/y
comes out to be .5774 or 0.577350269189626 using format long
and tan(pi/6) is .5774 or 0.577350269189626 using format long
I should be getting the "equal to display"
however I am not.
Im pretty sure this is due to round off error, so how should I change my if statement to get the equal message to display.
Thank You
채택된 답변
추가 답변 (2개)
Walter Roberson
2011년 10월 4일
0 개 추천
This is a known and unavoidable issue in any finite-precision computer, no matter what the base of arithmetic (decimal, binary, hex, whatever) that it uses. For more information, please read this FAQ
카테고리
도움말 센터 및 File Exchange에서 Just for fun에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!