Python Konvertieren von Brüchen in Dezimalzahlen

8

Ich möchte 1/2 in Python konvertieren, so dass ich, wenn ich x (x = 1/2) sage, 0,5

zurückgebe

Ich 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

    
Kartik 30.01.2011, 07:33
quelle

5 Antworten

23

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 ...

    
Ant 30.01.2011, 10:14
quelle
7

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.

    
Greg Hewgill 30.01.2011 07:35
quelle
6

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:)

    
CaptainChristo 30.01.2011 07:43
quelle
3

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.

    
Karl Knechtel 30.01.2011 10:02
quelle
3

Wenn die Eingabe eine Zeichenfolge ist, können Sie Fraction direkt an der Eingabe verwenden:

%Vor%     
Brian Minton 31.07.2012 14:50
quelle

Tags und Links