Seite 1 von 1

Fliesskommazahlen

Verfasst: Dienstag 15. April 2003, 10:00
von Sango
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?

Division in Python

Verfasst: Dienstag 15. April 2003, 10:41
von jgollers
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.

Verfasst: Dienstag 15. April 2003, 10:52
von Sango
Jep, hilft. Danke für die schnelle antwort :)

Re Fließkommazahlen

Verfasst: Dienstag 15. April 2003, 15:18
von ertlpott
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

Re: Re Fließkommazahlen

Verfasst: Dienstag 15. April 2003, 16:12
von Voges
ertlpott hat geschrieben:anscheinende kapiert python nur dann,
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 C ;-)
Jan

Verfasst: Dienstag 15. April 2003, 23:38
von RicmanX
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 :P Aber .0 is halt schneller als andersrum :)