Entschuldigt, wenn dies wurde bereits gefragt worden, aber warum tut dies:Python: 4/5 = 0.0. Float-Deklaration fehlt?
a=4
b=5
c=float(a/b)
print c
Gibt
>>>>
0.0
statt 0,8?
Entschuldigt, wenn dies wurde bereits gefragt worden, aber warum tut dies:Python: 4/5 = 0.0. Float-Deklaration fehlt?
a=4
b=5
c=float(a/b)
print c
Gibt
>>>>
0.0
statt 0,8?
In Python 2, Trennung zwischen ganzen Zahlen 2 wird eine Ganzzahl (Rundung auf die nächste ganze Zahl auf 0), in diesem Fall zurück, 0
. Ihr Code ist im Grunde float(0)
was 0.0
ist.
Sie müssten zuerst einen Ihrer Werte in einen Gleitkommawert ändern, wenn Sie einen Gleitkommawert zurückgeben möchten.
Dieses Verhalten wurde in Python 3 geändert, wobei die Division zwischen 2 Ganzzahlen einen Gleitkommawert zurückgibt, in diesem Fall 0.8
.
4/5
0 zurück, weil es eine int Division ist, dann werfen Sie schwimmen auf 0
Wegen der Integer-Division .... zwei ganze Zahlen dividiert werden zurückkehren und integer. Der Wert 0.8 wird auf 0 gekürzt.
Sie müssen eine Ihrer Ganzzahlen zu einem Gleitkommawert erhöhen, wenn Sie eine Fließkommaantwort wünschen.
E.G.
c = Schwimmer (a)/b
Es ist nicht abgeschnitten. '4/5' ergibt bereits' 0'. –
Das ist, weil dies eine Integer-Division ist:
>>> 4/5
0
wenn Sie 0.8
, einer vor der Teilung schweben die beiden werfen zu wollen:
>>> 4/float(5)
0.8
In Python 2 /
gibt nur integer-Teil, wenn Sie zwei ganze Zahlen - wie int(0.8)
. Sie müssen float ie verwenden. float(a)
oder 4.0
(kurz 4.
) oder * 1.0
print float(4)/5
print 4/float(5)
print 4.0/5
print 4/5.0
print 4./5
print 4/5.
print a*1.0/b # sometimes you can see this method
print a/(b*1.0) # this version need() - without() you get (a/b)*1.0
Wenn Sie Float in einer der Variablen nicht einführen möchten. Sie könnten dies tun:
from __future__ import division
4/5
Dies wird geben, was Sie für 0,8 suchen, ohne Floating einzuführen.
in Python 3 erhalten Sie 0,8. Das hängt von der Python-Version ab. –