Seite 1 von 1

Typkonversion

Verfasst: Montag 19. März 2012, 20:12
von tany3
Naben zusammen,

Ich hab ein Problem mit der Typkonversion :K kA woran es liegt .

Code: Alles auswählen

print zaehleralle
print zaehlerpush
print zaehlermov 

verh= "%f" %(zaehlerpush/zaehleralle)
print verh
zaehleralle,zaehlerpush und zaehlermov sind alles integer und in verh will ich den Quotienten teilen aber weil da gerade in Integer 0 rauskommen würde wollte ich in float umwandeln, aber da kommt immer noch 0.000 raus ... wieso ?

Danke euch :)

Re: Typkonversion

Verfasst: Montag 19. März 2012, 20:23
von Liffi
Du musst eine der Variablen _vorher_ in ein float umwandeln.
Hinterher bringt es nicht viel, da wird eine 0 höchstens wie beschrieben zur 0.0.
EDIT:: Bei python 2.x gibt die Division zweier Ganzzahlen die Zahl 'vor dem Komma'. Z.B. gibt 5/3 1, 2/3 gibt 0.

Re: Typkonversion

Verfasst: Montag 19. März 2012, 20:25
von EyDu
Hallo.

Bei allen Pythonversionen kleiner als 3 ergibt die Division eines Integers durch einen Integer immer wieder einen Integer. Das dürft dir aus der Schule noch als Division mit Rest bekannt sein. Du musst also vorher den Dividend oder den Divisor in einen float umwandelt. Alternativ geht auch ein

Code: Alles auswählen

from __future__ import division
Dann erhältst du bei Divisionen, die nicht ohne Rest durchführbar sind, modulweit einen float.

An deiner Vergabe von Namen solltest du auch noch einmal arbeiten. Für was soll "verh" stehen? Das kann gar nicht so lang sein, dass man es nicht ausschreiben könnte ;-)

Sebastian

Re: Typkonversion

Verfasst: Montag 19. März 2012, 20:27
von tany3
EyDu hat geschrieben:Hallo.

Bei allen Pythonversionen kleiner als 3 ergibt die Division eines Integers durch einen Integer immer wieder einen Integer. Das dürft dir aus der Schule noch als Division mit Rest bekannt sein. Du musst also vorher den Dividend oder den Divisor in einen float umwandelt. Alternativ geht auch ein

Code: Alles auswählen

from __future__ import division
Dann erhältst du bei Divisionen, die nicht ohne Rest durchführbar sind, modulweit einen float.

An deiner Vergabe von Namen solltest du auch noch einmal arbeiten. Für was soll "verh" stehen? Das kann gar nicht so lang sein, dass man es nicht ausschreiben könnte ;-)

Sebastian
Vielen Dank ! Import hat mein Problem gelöst ! :D