Por alguna razón, el objeto decimal pierde precisión cuando se multiplica. No hay razón para suceder así. Por favor revisa el caso de prueba y me iluminas.python Precisión decimal
from decimal import *
getcontext().prec = 11
a = Decimal('5085.28725881485')
b = 1
print getcontext()
print 'a = '+str(a)
print 'b = '+str(b)
print 'a * b = '+str(a * b)
Y la salida:
Context(prec=11, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[DivisionByZero, InvalidOperation, Overflow])
a = 5085.28725881485
b = 1
a * b = 5085.2872588
No estoy seguro si esto es relevante, pero python2.6 utilizado.
Establece la precisión en 11, y obtuvo 11 cifras significativas en su resultado. ¿Cuál es el problema? –
¿no significa precisión los números después del punto? – marrat
¿hay alguna manera de limitar la precisión al número después del punto? – marrat