Rounding in Matlab (very trivial)

2 visualizaciones (últimos 30 días)
Ryan Shrott
Ryan Shrott el 19 de Ag. de 2015
Comentada: Walter Roberson el 19 de Ag. de 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?

Respuesta aceptada

Steven Lord
Steven Lord el 19 de Ag. de 2015
See question 1 in the Mathematics section of the FAQ.
  3 comentarios
Image Analyst
Image Analyst el 19 de Ag. de 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
Walter Roberson el 19 de Ag. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Desktop en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by