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.
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Korrekte Division

Beitragvon keboo » Donnerstag 23. Februar 2006, 11:02

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

Beitragvon Brok3r » Donnerstag 23. Februar 2006, 11:21

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

??

Beitragvon keboo » Donnerstag 23. Februar 2006, 11:22

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

Beitragvon Brok3r » Donnerstag 23. Februar 2006, 11:30

typecast wäre angebrachter :wink:

Code: Alles auswählen

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

Beitragvon Joghurt » Donnerstag 23. Februar 2006, 15:42

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

Beitragvon BlackJack » Donnerstag 23. Februar 2006, 23:04

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder