非常に小さい数値を表示するように出力をフォーマットしようとしています..
a= 6500
b= 3600
c=.000900
d= int((b/a)-c)
print d
答えはゼロになりますが、.###### の後の数字を探します。
すみません、これを試してください
非常に小さい数値を表示するように出力をフォーマットしようとしています..
a= 6500
b= 3600
c=.000900
d= int((b/a)-c)
print d
答えはゼロになりますが、.###### の後の数字を探します。
すみません、これを試してください
Python 2.xで整数除算に噛まれたようです。
>>> a= 6500
>>> b= 3600
>>> c=.000900
>>> from __future__ import division
>>> print b/a - c
0.552946153846
計算には 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)