[pyar] Duda con la resta

Varela Matias matu.varela en gmail.com
Jue Jun 8 21:49:58 ART 2017


Gracias Facu, desconocía estos detalles!

Saludos

El jue., 8 jun. 2017 a las 17:34, Facundo Batista (<facundobatista en gmail.com>)
escribió:

> 2017-06-08 16:37 GMT-03:00 Juan Carizza <juan.carizza en gmail.com>:
>
> > Cuando trabajo con flotantes hay que tener en cuenta la cantidad de
> > decimales y el redondeo..
> >
> > In [1]: round(2.2 - 4.3, 20)
> > Out[1]: -2.0999999999999996
> >
> > In [2]: round(2.2 - 4.3, 1)
> > Out[2]: -2.1
>
> Es peor, incluso, cuando se trabaja con flotantes hay que tener
> cuidado de que "la matemática que aprendiste en la escuela acá no
> funciona".
>
> Por ejemplo, todos sabemos que si sumás y restás el mismo número el
> resultado no cambia, ¿no? Pero...
>
> >>> 2.2 - 4.3
> -2.0999999999999996
> >>> 7 - 7 + 2.2 - 4.3
> -2.0999999999999996
> >>> 7 + 2.2 - 4.3 - 7
> -2.1000000000000005
>
> Fijate que en el último paso cambié el orden, y eso me cambió el resultado!
>
> Por eso la recomendación siempre de si vas a hacer cuentas sobre
> dinero, usá Decimal!
>
> >>> from decimal import Decimal
> >>> Decimal('2.2') - Decimal('4.3')
> Decimal('-2.1')
>
> Detalle: fijate que a Decimal le pasé un string. Decimal también
> soporta que le pases un flotante directamente, pero ojo porque ahí ya
> arrancás con un error....
>
> >>> Decimal(2.2) - Decimal(4.3)
> Decimal('-2.099999999999999644728632120')
>
> ...porque el flotante que le estás pasando no es el flotante que vos
> creés... O sea, 2.2 no es 2.2, sino
>
> >>> Decimal(2.2)
> Decimal('2.20000000000000017763568394002504646778106689453125')
>
> Slds.
>
> --
> .    Facundo
>
> Blog: http://www.taniquetil.com.ar/plog/
> PyAr: http://www.python.org/ar/
> Twitter: @facundobatista
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar

-- 
Matías Varela
(260) 4290769
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170609/9b09ae03/attachment.html>


Más información sobre la lista de distribución pyar