Seite 1 von 1
Rundungsproblematik
Verfasst: Mittwoch 27. Juli 2022, 10:50
von Kobra23759
Hallo,
macht es einen Unterschied, ob man schreibt m=np.matrix([ [0, 0, 0],[1,1,1] ]) oder
m=np.matrix([ [0.0, 0.0, 0.0],[1.0,1.0,1.0] ])
print(10/3) ist ja gleich print(10.0/3.0)
vielen Dank für die Beantwortung dieser sehr einfachen Frage
Re: Rundungsproblematik
Verfasst: Mittwoch 27. Juli 2022, 11:12
von Sirius3
Das solltest Du Dir einfach selbst beantworten können, wenn Du Dir den Datentyp anschaust.
Re: Rundungsproblematik
Verfasst: Mittwoch 27. Juli 2022, 12:13
von __blackjack__
@Kobra23759: Ja und nein. In vielen Fällen macht es keinen Unterschied welche Definition von `m` verwendet wird. In einigen schon. Das gilt aber auch für Dein `print()`-Beispiel, denn das gilt nicht für alle Werte die man da an Stelle von 10 und 3 bzw. 10.0 und 3.0 einsetzen könnte. Es gibt auch Werte bei denen auch dort ein unterschiedliches Ergebnis heraus kommen kann weil Ganzzahlen und ganzzahlige Gleitkommazahlen nicht den gleichen Wertebereich abdecken.
Re: Rundungsproblematik
Verfasst: Mittwoch 27. Juli 2022, 12:18
von Kobra23759
Hallo Blackjack,
danke für die Hinweise. Hast du ein Beispiel für den print-Ausdruck, bei dem unterschiedliche Werte entstehen?
Re: Rundungsproblematik
Verfasst: Dienstag 2. August 2022, 09:19
von noisefloor
Hallo,
die Präzision und die Rundungsproblematik von Gleitkommazahlen von Python (und anderen Programmiersprachen) ist auch in der Python-Doku erklärt:
https://docs.python.org/3/tutorial/floatingpoint.html
Gruß, noisefloor
Re: Rundungsproblematik
Verfasst: Dienstag 2. August 2022, 10:47
von __blackjack__
Ein Beispiel für unterschiedliche Ergebnisse wenn man an die Grenzen des Wertebereichs geht:
Code: Alles auswählen
In [103]: 1000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 000000000000000000000000000000 / 9
Out[103]: 1.1111111111111112e+308
In [104]: 1000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 0000000000000000000000000000000000000000000000000000000000000000000000
...: 000000000000000000000000000000.0 / 9.0
Out[104]: inf
Re: Rundungsproblematik
Verfasst: Dienstag 2. August 2022, 10:51
von Kobra23759
Hallo Blackjack,
danke für dein Bsp