Calc rechnet falsch ?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

thomas58
Beiträge: 1
Registriert: So, 09.02.2014 17:10

Calc rechnet falsch ?

Beitrag von thomas58 »

Hallo,

es gabe ja schon einige Beiträge mit angeblichen Rechenfehlern, dabei lag es aber an Formeln oder am runden.

Jetzt bin ich auf folgendes Problem gestossen: Einfache Substraktion zweier eingegebener Zahlen, die beide größer 1 Mio sein müssen und 9 Nachkommastellen haben, zB:

5.987.654,6000000000
5.987.564,2000000000
90,3999999994

Das Ergebnis ist hinten nicht -,40, das erreicht man nur wenn unter Einstellungen - berechnen - Genauigkeit wie angezeigt - ausgewählt wird oder die Nachkommastellen verringert werden. Dien Differenz ist umso größer, je höher die Zahl ist.

Es gibt im Netz Beiträge, dass die Rechenprogramme nur bis 15 Stellen korrekt rechnen und danach Nullen verwenden, aber dass das Ergebnis auch bei Nullen am Schluss falsch ist, ist mir neu. Aber eigentlich ist das die einzige Lösung, oder?

mfG
Thomas
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Calc rechnet falsch ?

Beitrag von clag »

Hallo Thomas58,

du übersiehst eine Kleinigkeit, nämlich das du Calc nötigst mit mehr wie 15 Stellen zu rechnen, 7vor und 9nach dem Komma.
Wenn du die Nachkommastellen auf 8 begrenzt, erhältst du das korrekte Ergebnis
15Stellen.png
15Stellen.png (2.03 KiB) 691 mal betrachtet
mehr wie 15 "signifikante" Stellen sind nicht drin
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Calc rechnet falsch ?

Beitrag von lorbass »

thomas58 hat geschrieben:dass das Ergebnis auch bei Nullen am Schluss falsch ist, ist mir neu.
15 Stellen sind 15 Stellen, auch wenn einige davon Nullen sind. Was ist daran so überraschend?

Du musst bedenken, dass Computer nicht im Dezimalsystem arbeiten, sondern im Binärsystem. Rationale Dezimalzahlen werden aber i.d.R. im Binärsystem nur angenähert. Auch rationale Dezimalzahlen mit nur einer relevanten Nachkommastelle haben als angenäherte Binärzahlen meist unendlich viele relevante Nachkommastellen*. Deine Beispielwerte ergeben folgende 32-Bit-Binärzahlen:
  • Code: Alles auswählen

    dezimal 5.987.654,6000000000 ⩯ binär 10110110101110101000110,100110011...
    dezimal 5.987.564,2000000000 ⩯ binär 10110110101110011101100,001100110...
Anders rum, für 32-Bit-Binärzahlen:
  • Code: Alles auswählen

    binär 10110110101110101000110,100110011 ⩯ dezimal 5.987.654,599609375
    binär 10110110101110011101100,001100110 ⩯ dezimal 5.987.564,19921875
Zur Umrechnung habe ich übrigens den erst besten Umrechner verwendet, der mir über den Weg gelaufen kam: http://www.arndt-bruenner.de/mathe/scri ... ysteme.htm Ich kann also nicht für jedes Bit die Hand ins Feuer legen ;)

* Eigentlich unterscheiden Rechner Vor- und Nachkommastellen von Binärzahlen nicht in dieser Form, aber ich will hier anschaulich bleiben.

Gruß
lorbass
Antworten