Frage von AlphaJet, 44

Python geteilt rechnen und ganze / natürliche Zahl als Ergebnis bekommen?

Gibt es einen Weg in Python geteilt zu rechnen und als Ergebnis eine ganze Zahl zu bekommen ? Wenn ich 5 durch 2 rechnen würde ich 2.5 bekommen. Ich brauche aber nur die ganze 2.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Jonas711, 38

5//2=2

Kommentar von SaltyCat ,

Der ist natürlich noch besser :)

Kommentar von Jonas711 ,

Ich gehe davon aus, dass dies wirklich die schnellere Variante ist, da intern gar nicht erst die Nachkommastellen berechnet werden müssen.

Getestet habe ich es aber nicht, welche Zeitersparnis das bringt. 

Kommentar von SaltyCat ,

Das war auch nicht ironisch gemeint 

Kommentar von Jonas711 ,

Schon klar. Ich war mir nur selbst eben nicht sicher, ob es wirklich "besser" im Sinne von einer Zeitersparnis ist.

Ich hab es jetzt aber gerade mal getestet:

500.000 Divisionen mit int(x/y) brauchten bei mir 0.14 Sekunden, mit x//y 0.07 Sekunden.

Also ja, es ist besser (wenn auch nicht in einem wirklich relevanten Ausmaß).

Antwort
von SaltyCat, 28

int(x)

Vorsicht, int rundet immer ab. Wenn du korrekt runden willst, also z.b. 2.8 -> 3, musst du etwas tricksen .. Dann nimmst du 

int(x+0.5)

Kommentar von Volens ,

Toll.
Uralter Assembler-Trick aus der Steinzeit der Datenverarbeitung.

Kommentar von SaltyCat ,

Da ich keine Ahnung habe, auf welchem Wissensstand der FE ist... Was willst du?

Kommentar von Volens ,

War nur ein Hinweis darauf, dass in alten Zeiten der Programmierung genau auf diese Art gerundet wurde, als man noch mit Bytes sparen musste.
Das war ein Kompliment! 
(Anscheinend schwer zu glauben ...)

Kommentar von SaltyCat ,

Ähm... öh... Entschuldigung 😳

Ja, bei dem hier z.t. üblichen umgangston liest man hier leider tatsächlich die Kommentare oft in imaginär abfälligem Tonfall. Asche über mein Haupt. 

Keine passende Antwort gefunden?

Fragen Sie die Community