Borrar filtros
Borrar filtros

I noticed a difference with round() at 15 decimal places, and I need to know why this is so.

5 visualizaciones (últimos 30 días)
Yesterday, I noticed that
round(2.4999999999999999) %15 decimal places
ans =
3
But
round(2.499999999999999) %16 decimal places
ans =
2
This can be for any number, not just 2. Does anybody know what causes this?

Respuesta aceptada

Mara Gati
Mara Gati el 16 de Abr. de 2016
It's OK, I found the answer. Floating point doubles are precise to 15dp only.
  1 comentario
John D'Errico
John D'Errico el 16 de Abr. de 2016
It is not 15 decimal digits that matters, since doubles are not stored in decimal form. A double in MATLAB is actually stored in binary. So 52 binary bits represents something a little more accurate than 15 decimal digits.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by