こんにちは私はいくつかの助けをお願いします。私はxxxxx.yyyyyyyyyyyyyyyのようなフォーマットで浮動小数点数を計算したいと思います。私は、cは0.000000538必死にシンプルなpython小数
として表示させたい
getcontext().prec = 14
a = Decimal(str('12.737791301'))
b = Decimal(str('12.737791839'))
c = Decimal((b - a)) # substract is what I finally want here
print a, b, c
12.737791301 12.737791839 5.38E-7
:私は、私は多くのことを試みたが、私は多くのことを探索したが、私はまだ次のような単純な問題を抱えている私は、小数点の代わりに、フロート を使用する必要があることを学びましたご協力いただきありがとうございます!
ps。正規化()が機能しませんでした
をしたい場合は、 '%の.9f'を使用する際の問題は、あなたがどのように多くの小数点以下件まで知っている必要がありますということですあなたは印刷する必要があり、予期しない結果をもたらすので、 '%.30f'のような書式文字列に任意の長い値を置くことはできません... ' '' print%.9f%(1e-9) ' '... '0.000000001'#これは正しいです ' ' ''%.30f%(1e-9) '' ...' 0.000000001000000000000000062282 '#これはありません' 浮動小数点数の扱いには、常にいくつかの問題があります。 –
これは本当です。指数表記(5.38E-7の例では3)で数字を数え、指数-1にそれを加えるのは、いつも醜いハックです。 frmt = "%0" + str(3 + 7 - 1)+ "f" print frmt%c ...しかし、このようなクルージュ。 – shelhamer