Rounding in Matlab (very trivial)
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ryan Shrott
am 19 Aug. 2015
Kommentiert: Walter Roberson
am 19 Aug. 2015
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 Kommentare
Akzeptierte Antwort
Steven Lord
am 19 Aug. 2015
3 Kommentare
Image Analyst
am 19 Aug. 2015
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
am 19 Aug. 2015
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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Desktop finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!