Seite 1 von 1

Korrekte Division

Verfasst: Donnerstag 23. Februar 2006, 11:02
von keboo
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

Verfasst: Donnerstag 23. Februar 2006, 11:21
von Brok3r

Code: Alles auswählen

print 18.0/5

Code: Alles auswählen

print 18/5.0

??

Verfasst: Donnerstag 23. Februar 2006, 11:22
von keboo
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

Verfasst: Donnerstag 23. Februar 2006, 11:30
von Brok3r
typecast wäre angebrachter :wink:

Code: Alles auswählen

print 18
print float(18)

Verfasst: Donnerstag 23. Februar 2006, 15:42
von Joghurt
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.

Verfasst: Donnerstag 23. Februar 2006, 23:04
von 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 '//'.