2017-12-30 3 views
1

2つの整数を除算し、結果を少なくとも76桁の精度で表示する必要があります。たとえば、1を3で割ると、0.33333333333 ... 76 "3"を表示する必要があります。私がPythonで分割し、小数点の後に76桁を表示すると、それは私に十分な精度の桁を与えません。つまり、いくつかの桁が間違っています。私がやった:明らかに1/3に等しくない0.3333333333333333148296162562473909929394721984863281250000000000000000000000、:分割時の精度を保つPython

print(format(1/3,".76f")) 

は、これは私の結果を与えました。私はPython 3を使用しています。小数点を分割して表示する方法はありますか?どんな助けでも大歓迎です!

+4

使用 'decimal.Decimal'? – Blckknght

+0

ありがとう!私は試みましたが、それはまた私に十分な精度の数字を与えていません。ところで、これはUSACOトレーニングの質問 "fracdec"です。 –

+0

それはしませんでしたか? [documentation](https://docs.python.org/3/library/decimal.html)から:「ハードウェアベースのバイナリ浮動小数点とは異なり、小数モジュールは**ユーザ変更可能な精度**(デフォルトは28か所) – usr2564301

答えて

3

76桁が正しいですか?

from decimal import * 
getcontext().prec = 76 
Decimal(1)/Decimal(3) 

出力

Decimal('0.3333333333333333333333333333333333333333333333333333333333333333333333333333') 
+0

ありがとう!私はそれを試して、それは動作しました。 –

+0

'Decimal'オブジェクトをjsonから渡すことはできますか? – AlanSTACK

+0

Wizardey:https://stackoverflow.com/q/1960516/2750819 – kshikama