7

意見#18、20の物議を醸すプログラミング意見

考えさせられました。そこで、円周率の値を小数点以下5桁まで印刷してみました。

間違いなくPythonですぐにできると思ったので大丈夫でした。Googleで数秒、PythonのDecimalモジュールについて知りました。そして、私は終わりました。残りは、円周率の値を取得するためにシリーズを要約するために誰でも思いつくことができる基本的なロジックでした。

>>>from decimal import *
>>>getcontext().prec = 6
>>>Decimal(22)/Decimal(7)

何が得られるかを確認するために、上記の簡単なスクリプトを作成しました。

しかし、ここにあるのは、getcontext().prec = 6私に丸められた値を与えました!

>>>3.14286

正確には。

小数点以下N桁が四捨五入されていないことを確認するにはどうすればよいですか?つまり、ここでは答えを3.14285にしたかったのです。

4

1 に答える 1

11

Decimalコンテキストを使用して精度を指定するのと同じように、丸め規則を指定することもできます。

from decimal import *

getcontext().prec = 6 
getcontext().rounding = ROUND_FLOOR

print Decimal(22)/Decimal(7)

結果は次のようになります

3.14285

http://docs.python.org/release/3.1.5/library/decimal.html#decimal.Context

于 2012-09-12T05:58:00.860 に答える