0

私はPython2.7を使い始めたばかりで、テストとして簡単なクレジット支払い計算機を作成しようとしています。私が見つけたものから、decimal関数は、プログラムに特定の小数点以下の桁数まで計算させる必要があります。ドキュメントページから:

>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')

したがって、私の理解は、次のように入力した場合です。

from decimal import *
getcontext().prec=2
total =5
print Decimal(total)

私は次のものを取得する必要があります

5.00

ただし、5を出力し続けます。入力するDecimal (5)Decimal (total)、出力を取得した場合Decimal ('5')。誰かが私が間違っていることを教えてもらえますか?

4

2 に答える 2

3

設定する精度は、計算の数学的精度です。印刷される小数点以下の桁数とは関係ありません。デフォルトでは、インスタンスはそれ自体のDecimal最も短いテキスト表現を出力します。他の方法で出力するには、Python 文字列補間 ( %operator) またはformat()文字列のメソッドを使用します。

于 2012-08-31T02:08:55.137 に答える
2

フォーマット文字列だけをやらないのはなぜですか?

 >>> print "{0:0.2f}".format(5)
 5.00

申し訳ありませんが、10 進パッケージについて何も知らないので、本当にお手伝いできません... 10 進パッケージの必要性やニッチを本当に理解したことがありません

http://www.shocksolution.com/2011/11/python-string-format-examples/

http://docs.python.org/library/string.html#formatspec

于 2012-08-31T02:01:49.973 に答える