double Rundungsfehler < Sonstiges < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:01 Fr 29.04.2011 | Autor: | Physy |
Aufgabe | Berechnen Sie in einem Java Programm folgende Ausdrücke und erläutern Sie gegebenenfalls
Unstimmigkeiten im Resultat:
• (214748333333.0 · 214748333333.0)/10000.0
• (214748333333.0/10000.0) · 214748333333.0 |
Wir haben noch nichts über die binäre struktur von doublewerten usw. gemacht. Gibt es eine einfache Erklärung für den Unterschied in der letzten Nachkommastelle? Der Wertebereich wird ja nicht überschritten ...
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:23 Sa 30.04.2011 | Autor: | rainerS |
Hallo!
> Berechnen Sie in einem Java Programm folgende Ausdrücke
> und erläutern Sie gegebenenfalls
> Unstimmigkeiten im Resultat:
> • (214748333333.0 · 214748333333.0)/10000.0
> • (214748333333.0/10000.0) · 214748333333.0
> Wir haben noch nichts über die binäre struktur von
> doublewerten usw. gemacht. Gibt es eine einfache Erklärung
> für den Unterschied in der letzten Nachkommastelle? Der
> Wertebereich wird ja nicht überschritten ...
Die Division durch 10000 ist in binären Gleitkommarechnungen nicht exakt, daher wird gerundet. In der zweiten Rechnung rundest du vor der Multiplikation, daher multipliziert sich der Rundungsfehler der Division mit 214748333333.0.
Viele Grüße
Rainer
|
|
|
|