[pyar] Duda con la resta

Tomas Castro tomas.software en gmail.com
Jue Jun 8 21:54:39 ART 2017


Gracias ... Soy nuevo en el grupo ... También me sirvió
El 08/06/2017 20:50, "Varela Matias" <matu.varela en gmail.com> escribió:

> 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 <(260)%20429-0769>
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170608/d663963c/attachment-0001.html>


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