0

非常に小さい数値を表示するように出力をフォーマットしようとしています..

a= 6500
b= 3600
c=.000900
d= int((b/a)-c)
print d

答えはゼロになりますが、.###### の後の数字を探します。

すみません、これを試してください

4

2 に答える 2

0

Python 2.xで整数除算に噛まれたようです。

>>> a= 6500
>>> b= 3600
>>> c=.000900
>>> from __future__ import division
>>> print b/a - c
0.552946153846
于 2013-02-11T02:22:22.003 に答える
0

計算には 2 つの問題がある可能性があります。

Python 2 を使用している場合/、2 つの整数を使用した除算も常に整数になります。これにより、計算の小数部分が破棄されますが、これは予期しない場合があります。これに対する 1 つの修正方法は、値の 1 つを強制的に値にすることfloatです (例: float(b)/a)。別の方法として、ファイルの先頭に を配置することもできますfrom __future__ import division。これは、除算に Python 3 セマンティクスを使用するよう Python に指示します (結果が正確な整数である場合、整数除算からのみ整数を取得します)。

2 番目の問題は、浮動小数点値のフォーマットに関するものと思われます。まず、値の小数部分のみが必要なようです(整数部分ではありません)。通常、最適なオプションは、値の整数部分を単純に減算することです。

d = someFloatingPointValue()
d_frac = d - int(d)

次に、出力する文字列を取得するには (小数点以下の桁数は必要ですが、桁数は多くない場合)、おそらく Python の文字列の書式設定操作を検討する必要があります。

d = someFloatingPointValue()
d_to4decimalPlaces = "{:.4f}".format(d)
于 2013-02-11T02:22:29.740 に答える