Moin
Ich schreibe grade ein Statistik-Programm in Python und da ist mir ein etwas Seltsames Phänomen aufgefallen. Scheinbar werden Zahlen Standardmaessig nur als Ganzzahlige Werte ausgegeben, auch wenn das Ergebnis Nachkommastellen hat.
Z.B. 6/5=1 statt 1,2. Folgernd ergibt 5*(6/5)=5 statt 6.
Nun kann ich das natuerlich kompensieren wenn ich jede Zahl vorher in eine Fliesskommazahl wandel, nur ist das auf Dauer ziemlich muehselig und ich muesste nun auch mein Programm noch mal komplett prüfen.
Gibt es stattdessen eine möglichkeit Global zu erzwingen das bei Rechnungen immer Fliesskommazahlen als Ergebnis kommen?
Fliesskommazahlen
Das ist das Standardverhalten von Python. Das Ergebnis einer Division aus Ganzzahlen ist auch immer eine Ganzzahl! In Python 3 soll sich dieses aber ändern.
Welche Pythonversion benutzt du denn? Wenn es Python 2.2 ist dann hilft vielleicht ein Blick auf die Seite
http://www.python.org/doc/current/whatsnew/node7.html
Wenn du in einem Modul die Zeile
from __future__ import division
einfügst, dann wird das Verhalten des Divisionsoperators geändert. Ich glaube diese Möglichkeit, ist daß was du suchst.
Welche Pythonversion benutzt du denn? Wenn es Python 2.2 ist dann hilft vielleicht ein Blick auf die Seite
http://www.python.org/doc/current/whatsnew/node7.html
Wenn du in einem Modul die Zeile
from __future__ import division
einfügst, dann wird das Verhalten des Divisionsoperators geändert. Ich glaube diese Möglichkeit, ist daß was du suchst.
du musst einfach bei der Rechnung nicht
sagen wir jetzt zum beispiel : 5/2
sondern 5/2.0
eingeben. dann ist das ergebnis eine Fließkommazahl.
anscheinende kapiert python nur dann, das du kommazahlen haben willst, wenn du mindestens eine der verwendeten zahlen mit den erwünschten kommastellen anschreibst
Simon
sagen wir jetzt zum beispiel : 5/2
sondern 5/2.0
eingeben. dann ist das ergebnis eine Fließkommazahl.
anscheinende kapiert python nur dann, das du kommazahlen haben willst, wenn du mindestens eine der verwendeten zahlen mit den erwünschten kommastellen anschreibst
Simon
Wieso 'anscheinend'? Das Verhalten ist wohldokumentiert und entspricht dem Verhalten bei C, womit Python ja geschrieben wurde. Da war GvR die Nähe zu C wohl wichtiger, als ein Verhalten, dass so mancher vielleicht bei einer Division erwarten würde. 'Früher' konnte eben jeder Certlpott hat geschrieben:anscheinende kapiert python nur dann,
Jan
-
- User
- Beiträge: 69
- Registriert: Donnerstag 29. August 2002, 17:10
- Wohnort: Erfurt
- Kontaktdaten:
Naja, ansich find ich das schon gut so, weil oft braucht man auch einfach nur "wieoft passt das da rein" und dann käm mir ne float auch dumm... ich weiß abrunden Aber .0 is halt schneller als andersrum