たとえば、標準の除算記号「/」はゼロに丸められます。
>>> 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
2番目のオプションは、Python 3.0。のデフォルトです。古い整数の除算が必要な場合は、//
演算子を使用する必要があります。
Edit:-Qnew
に関するセクションを追加しました。 ΤΖΩΤΖΙΟΥ !
他の答えは、浮動小数点値を取得する方法を示唆しています。このwlilはあなたが望むものに近いものですが、正確ではありません:
>>> 0.4/100.
0.0040000000000000001
実際にdecimal値が必要な場合は、次のようにします。
>>> import decimal
>>> decimal.Decimal('4') / decimal.Decimal('100')
Decimal("0.04")
これにより、base 1の4/100が "0.04"であることを適切に認識するオブジェクトが得られます。浮動小数点数は実際には基数2、つまり10進数ではなく2進数です。
次のように、用語の一方または両方を浮動小数点数にします。
4.0/100.0
または、Python 3.0、 'true division'でデフォルトになる機能をオンにします。これは、必要なことを行います。モジュールまたはスクリプトの上部で、次を実行します。
from __future__ import division
Pythonの decimal パッケージもご覧ください。これにより、ニースの10進数の結果が得られます。
>>> decimal.Decimal('4')/100
Decimal("0.04")
整数ではなく、浮動小数点値を使用するようにPythonに伝える必要があります。入力で小数点を使用するだけで、それを行うことができます。
>>> 4/100.0
0.040000000000000001
4.0/100を試す
単純なルート4/100.0
または
4.0/100
ここでは、以下の2つのケースが考えられます。
from __future__ import division
print(4/100)
print(4//100)
番号の最後に「.0」を追加することもできます。
4.0/100.0
整数を別の整数で除算して10進数値を取得することはできません。常にそのように整数を取得します(結果は整数に切り捨てられます)。 10進数になるには、少なくとも1つの値が必要です。
コールバックを使用してコードに次の関数を追加します。
_# Starting of the function
def divide(number_one, number_two, decimal_place = 4):
quotient = number_one/number_two
remainder = number_one % number_two
if remainder != 0:
quotient_str = str(quotient)
for loop in range(0, decimal_place):
if loop == 0:
quotient_str += "."
surplus_quotient = (remainder * 10) / number_two
quotient_str += str(surplus_quotient)
remainder = (remainder * 10) % number_two
if remainder == 0:
break
return float(quotient_str)
else:
return quotient
#Ending of the function
# Calling back the above function
# Structure : divide(<divident>, <divisor>, <decimal place(optional)>)
divide(1, 7, 10) # Output : 0.1428571428
# OR
divide(1, 7) # Output : 0.1428
_
この関数は、「ユークリッド分割アルゴリズム」に基づいて機能します。この関数は、プロジェクトに外部ヘッダーファイルをインポートしたくない場合に非常に便利です。
Syntex:Divide([divident]、[divisor]、[decimal place(optional)))
コード:divide(1, 7, 10)
OR divide(1, 7)
クエリについては以下にコメントしてください。