Warum ist dies laut dem Google Taschenrechner korrekt?

2 Antworten

"Richtige" Taschenrechner benutzen normalerweise die BCD-Darstellung ("binary coded decimal") zur internen Darstellung von Zahlen. Da wird jede Dezimalstelle getrennt gespeichert (als 4-Bit-Binärzahl), und der Rechner rechnet wie ein Mensch mit den einzelnen Dezimalstellen.

Deshalb tritt das Problem bei deinem Casio nicht auf.

Der Google-Rechner benutzt offenbar nicht BCD, sondern wandelt die gesamten Zahlen ins Binärsystem um - und das Ergebnis der Rechnung wieder zurück ins Dezimalsystem. Dabei können Rundungsfehler auftreten.

Das ist eine Frage der internen Zahlendarstellung und der Rundung dieser Zahlen bei der Darstellung.

Praktisch alle Rechner (es gibt da Ausnahmen) rechnen im Dualsystem.
Demzufolge lassen sich unsere üblichen Dezimalzahlen nicht exakt darstellen, sondern nur mit einer Ungenauigkeit von +/- 1 Bit bei der letzten Stelle des Dualsystems.

Für alle weiteren Rechnungen ist diese minimale Abweichung absolut vernachlässigbsar.

Felix12231 
Fragesteller
 28.05.2023, 19:53

Danke für die schnelle Antwort, das ist ja mal extrem interessant und etwas über das ich noch nicht nach gedacht hatte was ein "Problem" von einem elektrischen Taschenrechner sein könnte. Ich weiß das so geringe Abweichungen eigentlich keinen Unterschied in Rechnungen machen, jedoch würde mich trotzdem einfach aus reiner Neugierde interessieren ob es noch andere technische Systeme gibt, die eine höhere Genauigkeit besitzen

1
BurkeUndCo  28.05.2023, 20:20
@Felix12231

Es gibt durchaus unterschiedliche Rechengenauigkeiten.

So unterscheidet man zwischen Real*4, Real*8, Double, Extended etc. bei den meisten Standard-Prozessoren.

Großrechner, aber auch spezielle Rechenlaufwerke für PCs haben auch Register mit deutlich höherer Genauigkeit.

Und es gibt auch spezielle Programmiersprachen, die tatsächlich die digitalen Rechenoperationden (auf der Basis 10) mit nahezu beliebiger, beim Programmieren vorgebbarer Genauigkeit durchführen können. Aber dann dauert jede einzelne Rechenoperation natürlich dein Vielfaches der Zeit, die die Rechenoperation mit dualen Zahlen erfordert.

0