意見#18、20 controversial programming opinionsPythonの小数点以下の四捨五入
私は考えました。だから私は5小数点以下の桁の値を印刷しようとしました。
私は確かに私は間違いなくPythonでそれを行うことができると思ったので大丈夫だった。 Googleの数秒後に私はDecimal module of Pythonを知ることになった。 私はやった。レストは誰でもPiの価値を得るためにシリーズをまとめることができる基本的なロジックでした。
>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)
私は何を得るかを確認するために上記の簡単なスクリプトを書いています。
しかし、ここには、getcontext().prec = 6
が私に丸められた価値を与えました!
>>>3.14286
正確です。
小数点以下第四位が四捨五入されていないことを確認するにはどうすればよいですか?私はここで答えが欲しいと思ったのです。3.14285
何も小数に丸められていない...そのわずかプリントになります...あなたは '行うことができます "{0:0.6f}"。少なくとも私はテストなしで理解する限り、フォーマット(小数点(22)/小数点(7)) ' –
http://ja.wikipedia.org/wiki/Proof_that_22/7_exceeds_%CF%80 –
@JoranBeasley:あなた絶対に間違っています。 Decimal *は丸めます(または、コンテキストで指定した動作に応じて切り捨てられます)。これが正確さの値です。 '' {:.50f} '。format(Decimal(22)/ Decimal(7)) 'を試して、最後にすべてのゼロを参照してください。 –