Typkonversion

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
tany3
User
Beiträge: 20
Registriert: Mittwoch 7. März 2012, 10:32

Montag 19. März 2012, 20:12

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 :)
Liffi
User
Beiträge: 153
Registriert: Montag 1. Januar 2007, 17:23

Montag 19. März 2012, 20:23

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.
EyDu
User
Beiträge: 4872
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Montag 19. März 2012, 20:25

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
Das Leben ist wie ein Tennisball.
tany3
User
Beiträge: 20
Registriert: Mittwoch 7. März 2012, 10:32

Montag 19. März 2012, 20:27

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
Antworten