Brüche in Python

8

Gibt es trotzdem einen Bruch, z. 2/3 oder 1/2, in Python ohne das math Modul zu importieren?

Das Code-Snippet ist einfach:

%Vor%

Außergewöhnlich einfacher Code, aber überall, wo ich hinsehe, wird mir gesagt, dass ich das math -Modul importieren soll. Ich möchte dieses Snippet nur in einen größeren Code einfügen, an dem ich gerade arbeite. Ich bekomme 1 als Antwort, weil Python sich wie 1/3 eher 0 als .333333333 fühlt. Ich könnte .33333 setzen, aber das ist nur eine vorübergehende Lösung und ich möchte wissen, wie man diese sehr einfache Berechnung für zukünftige Projekte durchführt.

    
01110100 06.10.2012, 20:50
quelle

3 Antworten

12

Sie können from __future__ import division verwenden, um ganzzahlige Division-Return-Floats zu erzeugen, wo dies notwendig ist (so dass 1/3 zu 0,3333333 ... führt).

Auch ohne dies zu tun, kannst du deinen Bruchwert erhalten, indem du 1.0/3 anstelle von 1/3 machst. (Die 1.0 macht die erste Zahl zu einem Gleitkommawert und nicht zu einer Ganzzahl, wodurch die Division funktioniert.)

    
BrenBarn 06.10.2012, 20:51
quelle
3

In der Standardbibliothek gibt es ein Bruchsmodul, das verschiedene Bruchteile ausführen kann. Wenn Sie viele Berechnungen für Brüche haben, können Sie diese durchführen, ohne sie in Float zu konvertieren. Ссылка

    
yilmazhuseyin 06.10.2012 20:55
quelle
2

Fügen Sie einfach einen Dezimal- und Bruchteil hinzu, um die Operation in eine Gleitkommazahl umzuwandeln:

%Vor%

Oder verwenden Sie explizit float :

%Vor%

Oder verwenden Sie den Python 3-Spaltungsstil:

%Vor%

Jede dieser drei Methoden funktioniert. Ich bevorzuge das erste.

    
the wolf 06.10.2012 22:02
quelle

Tags und Links