[pyar] Valores incorrectos

Ivan Alejandro ivanalejandro0 en gmail.com
Dom Oct 17 19:59:49 ART 2010


2010/10/17 Esteban Kuber <ekuber en gmail.com>:
>> Tampoco la habría con un número no redondo:
>>
>>>>> 3.4 - 2.5
>> 0.89999999999999991
>>>>> round(3.4 - 2.5, 2)
>> 0.90000000000000002
>>>>> round(0.9, 2)
>> 0.90000000000000002
>>>>> 0.9
>> 0.90000000000000002
>
> Ejem...
>
>>>> 0.9
> 0.90000000000000002
>>>> print .9
> 0.9
>>>>
>
> Una cosa es la precisión con la que te muestra los flotantes la
> interactive console, y otra la que usa print. O mejor dicho, __repr__
> es distinto de __str__ en float.
>
> @OP: Te recomiendo que leas
> http://docs.python.org/tutorial/floatingpoint.html#representation-error
> y http://www.lahey.com/float.htm. Also see
> http://drj11.wordpress.com/2007/07/03/python-poor-printing-of-floating-point/
>
> Decimal es válido, pero tené en cuenta de que perdés la ventaja de
> trabajar con el FPU del procesador, o sea, es varios grados de
> magnitud más lento. Tenelo en cuenta si alguna vez tenés que sumarizar
> las facturas de todos los clientes de Metrogas.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>

Tambien al trabajar con floats se puede usar
>>>> "%.2f" % (3.4 - 2.5)
'0.90'

Hice un pequeño script para medir los tiempos de una sumatoria
chiquita usando 'Decimal' y 'float'.
Les paso el link con el codigo y mis resultados:
http://pyar.pastebin.com/FwHDVCpk

No se que tan preciso sea, me gustaria que si alguien tiene mas
experiencia en esto lo mire.

Saludos.

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the pyar mailing list