Was bedeutet die genauigkeit bei gleitpunkttypen?

3 Antworten

Bei der Genauigkeit geht es um Nachkommastellen. Das heißt, wenn du mit 2 Float-Variablen die selbe Rechung ausführst, kann es sein, dass sie nach der 6 Nachkommastelle verschiedene Werte haben.


wotan38  22.11.2016, 17:46

Die Ungenaugigkeit beim Rechnen mit Gleitkommazahlen hängt nicht vom Zufall ab. Die Ungenauigkeit ist genau definiert und besteht aus dem Ersetzen der hinteren Stellen durch Nullen. Die selbe Rechnung ergibt jedesmal den gleichen Wert mit der gleichen Ungenauigkeit.

Im Grunde handelt es sich bei der Ungenauigkeit nicht um Rechenfehler, sondern um eine grobe Größenangabe. Wenn ich z.B. 586374 € im Lotto gewonnen habe und mir ein Haus für 395763 € kaufe, bleiben mir 586000 - 395000 = 191000 übrig. Genau gerechnet wären es 190611. Für viele Fälle reicht diese Genauigkeit vollkommen aus. Wenn der Finanzminister die Kosten für etwas beziffert, nennt er auch nur die Milliarden oder Millionen, obwohl es sich bei dieser Zahl um keine runde Zahl handelt.     

0
Brotmensch89  23.11.2016, 15:51
@wotan38





Die Ungenaugigkeit beim Rechnen mit Gleitkommazahlen hängt nicht vom Zufall ab. Die Ungenauigkeit ist genau definiert und besteht aus dem Ersetzen der hinteren Stellen durch Nullen. Die selbe Rechnung ergibt jedesmal den gleichen Wert mit der gleichen Ungenauigkeit.

Hast du eine Quelle dazu?

Denn soweit ich weiß, sollte man solche Sachen, wie das Folgende vermeiden:

float a = 1;

if( a==1.00000000000000000000)

printf("float ist genauer als gedacht");

else 

printf("Offenbar stimmt hier was nicht");


Ich gebe aber zu, es ist schon eine Weile her, dass ich mich damit beschäftigt habe.



0

Wenn man von einer 100-stelligen Zahl nur die ersten 10 konkret angibt, die restlichen Stellen mit Nullen auffüllt, weist diese Zahl eine Ungenauigkeit aus, die davon abhängt, wieviele Stellen von den möglichen tatsächlich angegeben werden.

Die Größe des Weltalls, das sich mit Lichtgeschwindigkeit ausdehnt, wird in 10 hoch 80 ccm angegeben, also eine 80-stellige Zahl. In 10 Jahren ist die Zahl immer noch 80-stellig. Der Zuwachs in den 10 Jahren wirkt sich nur auf die hinteren Stellen der Zahl aus und liegen im Bereich der vorhandenen Ungenauigkeit.

Bei statistischen Aufgaben, wo es um Differenzen sehr großer (oder sehr kleiner) Zahlen geht, gibt es häufig Probleme mit der Genauigkeit der Gleitkommazahlen. Etwas Abhilfe schafft da die Gleitkommazahl mit doppelter Genauigkeit, die die meisten Rechner anbieten.

Danke dafür. Wie kommt es zustande dass der Datentyp einen so großen Wertebereich hat, dann aber eine Ungenauigkeit beim rechnen entsteht. Ich dachte immer in Computern läuft alles exakt und genau, so wie in der Mathematik.?


wotan38  22.11.2016, 18:05

Die Ungenauigkeit bei den Gleitkommazahlen hat nichts mit einem ungenauen Rechnen zu tun. Es geht hierbei um eine definierte Ungenauigkeit. Wenn ich 42,17 Liter Super für 1,299 tanke, kostet das 42 * 1,30 = 54,60. Wo ist hier an der Rechnung was falsch? Das kann ich hundert mal rechnen und bekomme immer das gleiche Ergebnis.

0