Seite 1 von 1

0-Stelle ungenau

Verfasst: Sonntag 29. November 2009, 13:08
von LP640
hallo
wieso steht bei folgendem code anstelle von 0 die zahl -1.38777878078e-016

Code: Alles auswählen

>>> x=-1
>>> while x<1:
	print x
	x=x+0.1

	
-1
-0.9
-0.8
-0.7
-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
-1.38777878078e-016
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
ich hab es nicht geschafft dieses problem zu lösen
hat jemand ne idee???

mfg
LP640

Verfasst: Sonntag 29. November 2009, 13:15
von EyDu

Verfasst: Sonntag 29. November 2009, 13:28
von HerrHagen
Der entsprechende Teil der deutschen Übersetzung des Python-Tutorials:
http://tutorial.pocoo.org/floatingpoint.html

Um die Probleme zu vermeiden kann man mit decimal arbeiten.

Verfasst: Sonntag 29. November 2009, 14:13
von sma

Code: Alles auswählen

x = -10
while x < 10:
    print x / 10.0
    x += 1
Stefan

Verfasst: Sonntag 29. November 2009, 14:23
von gkuhl
Nicht die 0.0 ist ungenau, sondern die 0.1:

Code: Alles auswählen

In [10]: 0.0
Out[10]: 0.0

In [11]: 0.1
Out[11]: 0.10000000000000001
Grüße
Gerrit

Edit: Mit 0.25 funktioniert das z.B.:

Code: Alles auswählen

In [14]: while x < 1:
   ....:     print x
   ....:     x += 0.25
   ....:     
   ....:     
-1
-0.75
-0.5
-0.25
0.0
0.25
0.5
0.75

Verfasst: Sonntag 29. November 2009, 16:34
von LP640
vielen dank für eure hilfe
ich hab das problem irgendwie mit round gelöst

mfg
LP640

Verfasst: Sonntag 29. November 2009, 17:05
von EyDu
LP640 hat geschrieben:ich hab das problem irgendwie mit round gelöst
Das hört sich jetzt aber nicht sehr vertrauenswürdig an ;-) Spiele besser nicht an den Zahlen herum und passe nur die Ausgabe entsprechen an. Das Stichwort lautet "String Formatting".

Verfasst: Sonntag 29. November 2009, 17:32
von Dav1d
HerrHagen hat geschrieben:Der entsprechende Teil der deutschen Übersetzung des Python-Tutorials:
http://tutorial.pocoo.org/floatingpoint.html

Um die Probleme zu vermeiden kann man mit decimal arbeiten.
Aud das [mod]Decimal[/mod]-Modul wurde schon einmal verwiesen

Verfasst: Sonntag 29. November 2009, 18:44
von gkuhl
Dav1d hat geschrieben:Aud das [mod]Decimal[/mod]-Modul wurde schon einmal verwiesen
Nicht zum ersten Mal. :roll:

Verfasst: Sonntag 29. November 2009, 18:58
von Dav1d
gkuhl hat geschrieben:
Dav1d hat geschrieben:Aud das [mod]Decimal[/mod]-Modul wurde schon einmal verwiesen
Nicht zum ersten Mal. :roll:
Das hab ich eigentlich gemeint :D