Ich möchte 1/2 in Python konvertieren, so dass ich, wenn ich x (x = 1/2) sage, 0,5
zurückgebeIch suche nach dem einfachsten Weg, dies zu tun, ohne irgendwelche geteilten Funktionen, Schleifen oder Karten zu verwenden
Ich habe Float (1/2) versucht, aber ich bekomme 0 ... kann mir jemand erklären warum und wie man es repariert?
Ist dies möglich, ohne die Variable x = 1/2 ??
zu ändern?Danke
In Python 3.x gibt jede Division einen Gleitkommawert zurück;
%Vor%Um dies in Python 2.x zu erreichen, müssen Sie die Float-Konvertierung erzwingen:
%Vor%oder um die Division aus der "Zukunft"
zu importieren %Vor%Ein Extra: Es gibt keinen eingebauten Fraktionstyp, aber es gibt in der offiziellen Bibliothek:
%Vor%und so weiter ...
Sie verwenden wahrscheinlich Python 2. Sie können die Division mit Hilfe von
reparieren %Vor% am Anfang Ihres Skripts (vor allen anderen Importen). In Python 2 führt der Operator /
standardmäßig eine ganzzahlige Division durch, wenn Integer-Operanden verwendet werden, die Bruchteile des Ergebnisses verwirft.
Dies wurde in Python 3 geändert, so dass /
immer Gleitkomma-Division ist. Der neue Operator //
führt eine ganzzahlige Division durch.
Alternativ können Sie die Gleitkommadivision durch Angabe einer Dezimalzahl oder durch Multiplikation mit 1.0 erzwingen. Zum Beispiel (aus dem Python-Interpreter):
%Vor%EDIT: Sieht so aus, als wäre ich in der Zeit geschlagen worden, die ich brauchte, um meine Antwort zu tippen:)
Es gibt nirgendwo eine Menge 1/2
. Python repräsentiert keine rationalen Zahlen mit einem eingebauten Typ - nur ganze Zahlen und Gleitkommazahlen. 1 wird nach den Integer-Division-Regeln durch 2 geteilt, was zu 0 führt.% Co_de% ist 0.
Wenn die Eingabe eine Zeichenfolge ist, können Sie Fraction direkt an der Eingabe verwenden:
%Vor%Tags und Links python