Problema con funcion round

nocreyente nocreyentes en terra.es
Jue Feb 9 22:02:13 CET 2006


Un poco de teoria nunca esta de más:
http://es.wikipedia.org/wiki/Coma_flotante

Los decimales se almacenan en el formato de numeros de coma flotante. 
Esto no es algo propio de python, es algo asi en todos los sistemas 
informaticos. No es posible a partir de numeros enteros (los 
ordenadores tienen numeros enteros en base 2) conseguir precisión sobre 
los numeros reales. Entre el 1 y el 2 hay infinitos numeros reales.

Espero que te sirva de algo, a mi como aficionado a la informatica, al 
menos me parece curioso :-)


El 09/02/2006, a las 13:54, Toni Casueps escribió:

> Esto es el resultado de aplicar a una lista de 10 valores la funcion 
> round a 1 decimal, y otra función round con una pequeña modificación 
> para que redondee siempre al número mayor:
>
>>>> lista=(2.05,2.15,2.25,2.35,2.45,2.55,2.65,2.75,2.85,2.95)
>>>> for a in lista:
> ...   print a,round(a,1),round(a+0.00001,1)
> ...
> 2.05 2.0 2.1
> 2.15 2.1 2.2
> 2.25 2.3 2.3
> 2.35 2.4 2.4
> 2.45 2.5 2.5
> 2.55 2.5 2.6
> 2.65 2.6 2.7
> 2.75 2.8 2.8
> 2.85 2.9 2.9
> 2.95 3.0 3.0
>
>
> Yo quiero que me redondee siempre al número mayor (tercera columna) y 
> con ese truco puedo obtenerlo, pero no entiendo por que Python a veces 
> lo hace al número menor y a veces al número mayor. Puede ser un bug de 
> Python?
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




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