Redondear numeros

Oswaldo Hernández listas en soft-com.es
Mar Nov 18 21:15:00 CET 2008


Luis Ortega Araneda escribió:
> Estimados,
> 
> Estoy trabajando en un programar que trabaja con números, tiempo, que
> los generé de forma aleatoria. Mi problema es que son del tipo:
> 3.4993545654564
> 
> quería redondear a dos digitos, por lo que ocupé la función
> round(3.4993545654564,2)
> y luego de hacerlo, el número me queda ...
> 3.4900000000000 o 3.49999999999999 <<< algo así sucede siempre.
> 
> bueno, mi pregunta es la siguiente, ¿existe alguna forma de que el
> número quede así: 3.49 ?
> 

Si los numeros son de tipo Decimal puedes usar quantize:

 >>> decimales = 2
 >>> d = decimal.Decimal("2.3456789")
 >>> d.quantize(decimal.Decimal((0,(1,),-decimales)))
Decimal("2.35")


-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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