たとえば、標準の除算記号'/'はゼロに丸められます。
>>> 4 / 100
0
ただし、0.04を返したいです。何を使いますか?
たとえば、標準の除算記号'/'はゼロに丸められます。
>>> 4 / 100
0
ただし、0.04を返したいです。何を使いますか?
次の 3 つのオプションがあります。
>>> 4 / float(100)
0.04
>>> 4 / 100.0
0.04
これは、C、C++、Java などと同じ動作です。または
>>> from __future__ import division
>>> 4 / 100
0.04
-Qnew
引数を Python インタープリターに渡すことで、この動作を有効にすることもできます。
$ python -Qnew
>>> 4 / 100
0.04
Python 3.0 では、2 番目のオプションがデフォルトになります。古い整数除算が必要な場合は、//
演算子を使用する必要があります。
編集:ΤΖΩΤΖΙΟΥ-Qnew
のおかげで、についてのセクションを追加しました!
他の回答は、浮動小数点値を取得する方法を示唆しています。これはあなたが望むものに近いでしょうが、正確ではありません:
>>> 0.4/100.
0.0040000000000000001
実際に10 進数値が必要な場合は、次のようにします。
>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")
これにより、基数 10の 4 / 100が「0.04」であることを正しく認識しているオブジェクトが得られます。浮動小数点数は、実際には 2 進数です。つまり、10 進数ではなく 2 進数です。
次のように、項の 1 つまたは両方を浮動小数点数にします。
4.0/100.0
または、Python 3.0 でデフォルトとなる機能である「真の除算」をオンにして、必要なことを行います。モジュールまたはスクリプトの先頭で、次のようにします。
from __future__ import division
Pythonのdecimalパッケージも確認することをお勧めします。これにより、優れた小数の結果が得られます。
>>> decimal.Decimal('4')/100
Decimal("0.04")
整数ではなく浮動小数点値を使用するように Python に指示する必要があります。入力で小数点を自分で使用するだけで、これを行うことができます。
>>> 4/100.0
0.040000000000000001
シンプルなルート 4 / 100.0
また
4.0 / 100
4.0/100 を試す
ある整数を別の整数で除算して 10 進数の値を取得することはできません。常にその方法で整数を取得します (結果は整数に切り捨てられます)。少なくとも 1 つの値が 10 進数である必要があります。
番号の末尾に「.0」を追加することもできます。
4.0/100.0
小数点以下の小数部分のみを削除しています。試しましたか : 4.0 / 100