Rounding in Matlab (very trivial)

조회 수: 2 (최근 30일)
Ryan Shrott
Ryan Shrott 2015년 8월 19일
댓글: Walter Roberson 2015년 8월 19일
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?

채택된 답변

Steven Lord
Steven Lord 2015년 8월 19일
See question 1 in the Mathematics section of the FAQ.
  댓글 수: 3
Image Analyst
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
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개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by