Parere n. 18, in 20 controversial programming opinionsarrotondamento decimale Python
mi ha fatto pensare. Così ho provato a stampare il valore di pi in 5 cifre decimali.
Era ok perché pensavo di poterlo fare in Python velocemente. Qualche secondo su Google ho avuto modo di conoscere lo Decimal module of Python. E ho finito. Il riposo era una logica di base che chiunque può inventare per riassumere la serie per ottenere il valore di Pi.
>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)
ho scritto lo script rapido sopra solo per verificare cosa otterrò.
Ma ecco la cosa, getcontext().prec = 6
mi ha dato un valore arrotondato!
>>>3.14286
per essere precisi.
Voglio sapere come posso essere sicuro che l'ennesimo posto dopo il decimale non sia arrotondato? Intendo dire che avrei voluto che la risposta fosse 3.14285
nulla è arrotondato in decimale ... il suo solo la stampa ... si può fare ' "{0: 0.6f}". format (Decimal (22)/Decimal (7)) 'almeno per quanto ho capito senza testare ... –
http://en.wikipedia.org/wiki/Proof_that_22/7_exceeds_%CF%80 –
@JoranBeasley: tu sono assolutamente sbagliati. Decimale * fa * round (o troncato, a seconda del comportamento specificato nel contesto). Ecco a cosa serve il valore di precisione. Prova ''{:. 50f}'. Format (Decimal (22)/Decimal (7))' e vedi tutti quegli zeri alla fine. –