[Python-es] resultado erróneo en una suma

gerardo Juarez gerardojuarez en buyteknet.info
Mie Mar 28 01:14:50 CEST 2012


Pasa en todos los lenguajes que usan punto (coma) flotante IEEE754, y 
sólo cuando se usan estos tipos de datos específicamente, como por 
ejemplo  REAL*4 y REAL*8 en Fortran,  float y double en C y sus 
descendientes, etc. Puede evitarse usando alguna representación alterna:
http://en.wikipedia.org/wiki/Floating_point#Some_other_computer_representations_for_non-integral_numbers

saludos
Gerardo

Juan Luis Cano Rodríguez wrote:
> Asdrúbal lo ha dicho implícitamente, o yo lo he entendido porque sé lo 
> que pasa... pero para que quede claro: esto pasa en /todos/ los 
> lenguajes de programación que usan coma flotante, sin excepción.
>
> 2012/3/27 Asdrúbal Iván Suárez Rivera 
> <asdrubal.ivan.suarez.rivera en gmail.com 
> <mailto:asdrubal.ivan.suarez.rivera en gmail.com>>
>
>     Son limitaciones del tipo de dato float como tal. Se soluciona con
>     el módulo decimal como te dijeron.
>
>     El 26 de marzo de 2012 19:25, Christian Felipe Álvarez
>     <sigilioso en gmail.com <mailto:sigilioso en gmail.com>> escribió:
>
>         Creo que aquí explican el
>         problema: http://docs.python.org/tutorial/floatingpoint.html
>
>         y que se soluciona con el módulo decimal
>         (http://docs.python.org/library/decimal.html)
>
>         Saludos,
>
>         On 24 March 2012 01:59, Daymel Bonne Solís <dbonne en uci.cu
>         <mailto:dbonne en uci.cu>> wrote:
>
>             Hola listeros:
>
>             Hace poco me he encontrado con el siguiente problema en
>             python:
>
>             Ralizando una suma de ciertos valores, siempre me arroja
>             un resultado erróneo.
>
>             >>> 0.1+0.1+0.1
>             0.30000000000000004
>             >>> 0.3+0.3+0.3
>             0.89999999999999991
>
>             Porqué sucede esto???
>
>             Sospecho que es en la representación interna de ciertos
>             valores numéricos, ya que:
>
>             >>> 1.1
>             1.1000000000000001 (noten el 1 al final)
>
>             Saludos.
>
>             10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS
>             CIENCIAS INFORMATICAS...
>             CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION
>
>             http://www.uci.cu
>             http://www.facebook.com/universidad.uci
>             http://www.flickr.com/photos/universidad_uci
>             _______________________________________________
>             Python-es mailing list
>             Python-es en python.org <mailto:Python-es en python.org>
>             http://mail.python.org/mailman/listinfo/python-es
>             FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
>         -- 
>         Christian
>
>         _______________________________________________
>         Python-es mailing list
>         Python-es en python.org <mailto:Python-es en python.org>
>         http://mail.python.org/mailman/listinfo/python-es
>         FAQ: http://python-es-faq.wikidot.com/
>
>
>
>
>     -- 
>     Asdrúbal Iván Suárez Rivera
>
>     /El éxito de alguien que enseña no es que sepa mucho, sino que lo
>     poco que sabe lo sepa hacer llegar./
>
>
>     _______________________________________________
>     Python-es mailing list
>     Python-es en python.org <mailto:Python-es en python.org>
>     http://mail.python.org/mailman/listinfo/python-es
>     FAQ: http://python-es-faq.wikidot.com/
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>   



Más información sobre la lista de distribución Python-es