1

注:私はすでにdecimal.Decimalを使用しています

次の大まかなスタイルで出力する必要がある場合に、計算を実行してエンドユーザーに表示するための最良の方法は何ですか。

Item - £ 70.10 
Item - £  5.67
Item - £ 10.33

--------------
Total  £ 86.10

私は子供の頃から数学で最終的な答えの前に丸めないように教えられていました。そうしないと精度が低下しますが、そうでない場合は計算エラーがあるように見えます。表示の背後にある計算は、表示された数値からユーザーが行うのと同じではないためです。

例えば:

My app will be doing: 70.1034 + 5.6693 + 10.333333333 = 86.1060333 (86.11 2dp)

My end user will be doing as above: 70.10 + 5.67 + 10.33 = 86.10

したがって、私は間違っているように見えます。これを克服するための最良の方法は何ですか?(私は一般的に意味しますが、Python固有のメソッドも役立ちます)

4

1 に答える 1

3

decimalモジュールを使用して、正しく機能する数学を取得します。各値が自動的に小数点以下2桁を使用するように設定できます。

>>> decimal.getcontext().prec = 2
>>> decimal.Decimal(1)/decimal.Decimal(3)
Decimal('0.33')

お金を使って作業しているときは、中間計算のたびに精度が失われるのが普通です。

于 2012-10-17T16:31:38.770 に答える