[pyar] Valores incorrectos

Esteban Kuber ekuber en gmail.com
Dom Oct 17 15:44:48 ART 2010


> 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.



More information about the pyar mailing list