Opinión # 18, en 20 controversial programming opinionsredondeo decimal de Python
me hizo pensar. Así que probé imprimiendo el valor de pi a 5 decimales.
Estaba bien ya que pensé que definitivamente podría hacerlo en Python rápidamente. Unos segundos en Google llegué a conocer el Decimal module of Python. Y yo estaba hecho. El descanso era una lógica básica que cualquier persona puede inventar para resumir la serie y obtener el valor de Pi.
>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)
escribí el guión rápido anterior solo para comprobar lo que voy a obtener.
Pero aquí está la cosa, getcontext().prec = 6
me dio un valor redondeado!
>>>3.14286
para ser exactos.
Quiero saber cómo puedo asegurarme de que el enésimo lugar después del decimal no se haya redondeado? Quiero decir que aquí hubiera querido que la respuesta fuera 3.14285
nada se redondea en decimal ... es apenas la impresión ... que puede hacer ' "{0: 0,6F}". formato (Decimal (22)/Decimal (7)) 'al menos hasta donde yo entiendo sin probar ... –
http://en.wikipedia.org/wiki/Proof_that_22/7_exceeds_%CF%80 –
@JoranBeasley: usted están absolutamente equivocados. Decimal * does * round (o truncado, dependiendo del comportamiento que especifique en el contexto). Para eso es el valor de precisión. Pruebe el formato ''{: .50f}'. (Decimal (22)/Decimal (7))' y vea todos esos ceros al final. –