Seite 1 von 8

Warum kann LibreOffice nicht 1,001 -1 ausrechnen?

Verfasst: Sa 3. Jun 2023, 16:51
von Volker_D
Hallo,

mir ist klar, dass es Grenzen gibt, weil Zahlen unterschiedlich gespeichert werden. Ich weiß, wie Interger Zahlen, Fließkommazahlen, ... intern in einem Computer abgespeichert werden.
Aber kann mir jemand sagen, warum LibreOffice 1,01-1 richtig rechnet, aber 1,001-1 falsch ausrechnet?
Ich demonstriere den Fehler hier:
https://youtu.be/e1a1iJOeejg

Danke

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:11
von Freischreiber
Hallo Volker,

kann ich nicht bestätigen, siehe Screenshot.
Rundung.png
Rundung.png (5.4 KiB) 2523 mal betrachtet
Vielleicht in der Zellformatierung mal die Anzahl der Nachkommastellen erhöhen oder die Angabe dort löschen.

Gruß
Freischreiber

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:17
von Volker_D
Das habe ich gemacht. Guck dir mal das Video an. Ich habe mir 20 Nachkommastellen anzeigen lassen und das Ergebis ist total falsch. Ich vermute, dass er das Ergebnis sich nicht als Fließkommazahl merkt, sondern als Interger speichert. Was aber eigentlich komisch ist, da es sich bei der Rechnung um zwei Gleitkommazahlen handelt.

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:23
von Volker_D
Nachtrag: Angeblich kommt dort 0,0099999999999989 raus. Das muss ein Umrechnungsfehler von Gleitkomma auf Integer sein. Mir ist nur nicht klar, warum das nicht schon bei 1,01 - 1 passiert. Dort müsste es ja zum gleichen Problem kommen.

Verfasst: Sa 3. Jun 2023, 17:32
von Lupo
Das ist gerade das Tückische dran: Mal ja, mal nein. Daher bitte immer Vorsorge treffen, falls es auf absolute Genauigkeit ankommt. Z.B. yVERGLEICH und yVERWEIS nur mit gerundeten Such- UND Suchbereichs-Gleitkommazahlen durchführen. Hinweis für die, die sich nicht mit DatumZeit-Werten in Tabellenkalkulationen auskennen: Eine Zeit ist ein Bruchteil von 1, also eine Gleitkommazahl. Daher auch dort runden. y steht hier übrigens als Variable für [nichts], S, H und X.

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:46
von mikele
Hallo,
wenn du dir die Binärdarstellungen von 0,001 und 0,01 ansiehst (die ja periodisch sind und daher irgendwann abgeschnitten werden müssen), ahnst du worin das Problem steckt.

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:53
von Volker_D
Danke. Die Binärdarstellung ist mir bekann. Aber das Problem müsste ja schon 1,01 - 1 und bei 1,1 -1 auftreten. Warum tritt es also dort nicht auf?

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 17:55
von Volker_D
Kann ich unter LibreOffice den Datentyp casten/festlegen?

Nach welchen Regeln ändert LibreOffice den Datentyp. Ich erkenne nicht die Regel. Es scheint mir etwas "willkürlich" die Datentypen zu wechseln.

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 18:10
von mikele
Hallo,
die Abweichungen sind nicht gleich. Es ist ja binär nicht so, dass sich einfach die Kommastelle verschiebt (wie in der Dezimaldarstellung).
Intern ist es immer derselbe Typ, nur die Darstellung ist eine andere.

Re: Warum kann LibreOffice nicht 1,001 -1 ausrechenen?

Verfasst: Sa 3. Jun 2023, 18:34
von karolus
Hallo

Calc kennt exakt zwei Datentypen: Text ( ist hier im Kontext irrelevant ) und 64bit Gleitkommazahlen, (ca. 14 signifikante Dezimalstellen ) es wird also nix gecastet zwischen Integer und Float. Punkt.

und falls du dich weiterhin echauffieren möchtest über diese ungeheuerliche Ungenauigkeit … mit der 14 Dezimalstelle von PI kannst du den Erdumfang auf 4µm genau berechnen. https://de.wikipedia.org/wiki/Kreiszahl