Korrekte Division

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Hallo Leute!

Wieder mal ne Anfängerfrage von mir:
Eine Funktion übergibt den Wert 18 und nicht 18.0.

Wie kann ich 18 durch 5 dividieren, damit nicht 3, sondern der richtige Wert 3.6 herauskommt?

Danke für eure Hilfe.

Johannes
Brok3r
User
Beiträge: 29
Registriert: Montag 24. Oktober 2005, 13:48

Code: Alles auswählen

print 18.0/5

Code: Alles auswählen

print 18/5.0
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Hallo!

Danke.

Ist es die sauberste Lösung, wenn ich das Ergebnis meiner Funktion einfach durch 1.0 dividiere, damit nicht 18 sonder 18.0 übergeben wird?

Johannes
Brok3r
User
Beiträge: 29
Registriert: Montag 24. Oktober 2005, 13:48

typecast wäre angebrachter :wink:

Code: Alles auswählen

print 18
print float(18)
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Wie schon geschrieben, arbeite mit float. Im übrigen immer Multiplizieren, wenn möglich. Divisionen sind langsamer als Multiplikationen.

Der Overhead des Interpreters dürfte aber um ein Vielfacher höher liegen, weshalb es in Python egal ist. Wenn du aber mal rechenintensive Algorithmen in C schreibst, ist das ein nützlicher Hinweis.
BlackJack

Wenn man am Anfang eines Moduls folgenden import benutzt, dann ergeben alle Divisionen mit '/' eine Fliesskommazahl:

Code: Alles auswählen

from __future__ import division
Ganzzahlige Division macht man dann mit '//'.
Antworten