Rounding in Matlab (very trivial)
조회 수: 2 (최근 30일)
이전 댓글 표시
Today is my first day using Matlab. I have been using C++ for last few years. Could someone please explain why FALSE is printed here?
%%Rounding of decimal fractions
x1=0.3
x2=0.1+0.1 + 0.1
test1=(x1==x2) % PRINTS FALSE? WHY?
댓글 수: 0
채택된 답변
Steven Lord
2015년 8월 19일
댓글 수: 3
Image Analyst
2015년 8월 19일
I suppose for some number combinations it will match all the way out to the umpteenth decimal place and for others it won't. Bottom line: to be robust you need to check non-integer floating point numbers against a tolerance and not for equality.
Walter Roberson
2015년 8월 19일
It does not have to be intuitive: it depends upon the exact bit pattern and upon the rounding mode that is in effect.
https://en.wikipedia.org/wiki/Rounding#Round_half_to_even
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!