790 Stimmen

Wie kann ich erzwingen, dass die Division mit Fließkomma erfolgt? Die Division rundet immer auf 0 ab?

Ich habe zwei Integer-Werte a y b aber ich brauche ihr Verhältnis in Gleitkomma. Ich weiß, dass a < b und ich möchte Folgendes berechnen a / b Wenn ich also eine ganzzahlige Division verwende, erhalte ich immer 0 mit einem Rest von a .

Wie kann ich die c eine Fließkommazahl in Python 2 zu sein?

c = a / b

32voto

gsbabil Punkte 7027

Wenn Sie einen der Parameter für die Division im Fließkommaformat angeben, wird auch die Ausgabe im Fließkommaformat erzeugt.

Beispiel:

>>> 4.0/3
1.3333333333333333

oder,

>>> 4 / 3.0
1.3333333333333333

oder,

>>> 4 / float(3)
1.3333333333333333

oder,

>>> float(4) / 3
1.3333333333333333

22voto

Alexander Punkte 11740

Fügen Sie einen Punkt ( . ) zur Angabe von Gleitkommazahlen

>>> 4/3.
1.3333333333333333

14voto

Gaurav Agarwal Punkte 18001

Dies wird auch funktionieren

>>> u=1./5
>>> print u
0.2

7voto

stephenbez Punkte 5431

Wenn Sie standardmäßig eine "echte" (Fließkomma-)Division verwenden möchten, gibt es ein Kommandozeilen-Flag:

python -Q new foo.py

Es gibt einige Nachteile (aus dem PEP):

Es wurde argumentiert, dass eine Kommandozeilenoption zur Änderung der Voreinstellung zu ändern, böse ist. In den falschen Händen kann sie sicherlich gefährlich sein Händen gefährlich sein: Es wäre zum Beispiel unmöglich, eine 3rd Bibliothekspaket eines Drittanbieters, das -Qnew erfordert, mit einem anderen, das -Qold erfordert.

Sie können mehr über die anderen Flags erfahren, die das Verhalten von Divisionen verändern bzw. davor warnen, indem Sie die Python Man Page konsultieren.

Ausführliche Informationen zu den Änderungen bei den Abteilungen finden Sie hier: PEP 238 - Wechsel des Abteilungsleiters

2voto

JoeCondron Punkte 7806
from operator import truediv

c = truediv(a, b)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X