69

たとえば、標準の除算記号'/'はゼロに丸められます。

>>> 4 / 100
0

ただし、0.04を返したいです。何を使いますか?

4

13 に答える 13

145

次の 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のおかげで、についてのセクションを追加しました!

于 2008-09-22T20:08:15.377 に答える
25

他の回答は、浮動小数点値を取得する方法を示唆しています。これはあなたが望むものに近いでしょうが、正確ではありません:

>>> 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 進数です。

于 2008-09-22T21:12:07.003 に答える
7

次のように、項の 1 つまたは両方を浮動小数点数にします。

4.0/100.0

または、Python 3.0 でデフォルトとなる機能である「真の除算」をオンにして、必要なことを行います。モジュールまたはスクリプトの先頭で、次のようにします。

from __future__ import division
于 2008-09-22T20:08:45.907 に答える
5

Pythonのdecimalパッケージも確認することをお勧めします。これにより、優れた小数の結果が得られます。

>>> decimal.Decimal('4')/100
Decimal("0.04")
于 2008-09-22T21:38:16.113 に答える
4

整数ではなく浮動小数点値を使用するように Python に指示する必要があります。入力で小数点を自分で使用するだけで、これを行うことができます。

>>> 4/100.0
0.040000000000000001
于 2008-09-22T20:07:38.233 に答える
1

シンプルなルート 4 / 100.0

また

4.0 / 100

于 2008-09-22T20:07:27.860 に答える
0

4.0/100 を試す

于 2008-09-22T20:07:20.090 に答える
0

ある整数を別の整数で除算して 10 進数の値を取得することはできません。常にその方法で整数を取得します (結果は整数に切り捨てられます)。少なくとも 1 つの値が 10 進数である必要があります。

于 2008-09-22T20:11:02.360 に答える
0

番号の末尾に「.0」を追加することもできます。

4.0/100.0

于 2019-02-08T23:35:28.573 に答える
-1

小数点以下の小数部分のみを削除しています。試しましたか : 4.0 / 100

于 2019-12-02T21:07:29.007 に答える