PythonのDecimalオブジェクトで最も基本的な概念が不足しているため、研究、読み込み、テスト、そして最終的には混乱し、心配しています。フォーマットPython Decimalオブジェクトを指定された精度に変換する
のは、我々は次の値を持ついくつかの文字列または小数のオブジェクトを持っていると仮定しましょう:
0.0008
11.1111
222.2222
3333.3333
1234.5678
目標は、単に小数点以下第三位を小数の精度を設定することです。たとえば、11.1111
は11.11
、1234.5678
は1234.57
となります。
私は次のようなコードを想像:
import decimal
decimals = [
decimal.Decimal('0.0008'),
decimal.Decimal('11.1111'),
decimal.Decimal('222.2222'),
decimal.Decimal('3333.3333'),
decimal.Decimal('1234.5678'),
]
for dec in decimals:
print dec.as_string(precision=2, rounding=ROUND_HALF_UP)
結果の出力は次のようになります。
0.00
11.11
222.22
3333.33
1234.57
これを考慮にTOTALがかかるため、明らかに、我々は、小数のコンテキストの精度を利用することはできません小数点以下の桁数です。
また、Decimalを浮動小数点に変換してその値を出力することにも興味はありません。 Decimalの背後にある理由は、浮動小数点数の計算の保存と実行を避けるためです。
その他の解決策はありますか?私は、スタックのオーバーフローに関する他の同様の質問があることを理解していますが、それらのどれも私が調べている根本的な問題を解決することはできませんでした。
ありがとうございます!
出力フォーマットや10進精度を扱うための組み込み10進インターフェイスはありませんか? –
@JoshuaBurns:これは*出力フォーマット用の組み込みインターフェースです。 –
これは間違いなく私の質問に答える、ありがとう!私の最大の関心事は、format()が実際のフォーマットを実行する前に値を浮動小数点にキャストしていたことでした。 –