Excel Formelergebnis nicht genau Null

Moin,

ich habe gerade eine mir nicht erklärliche Feststellung mit Excel gemacht:

Gegeben ist eine Tabelle, in der sich formelmäßig um die dreihundert Mal hintereinander eine Zelle auf die voranstehende bezieht. Beispiel zur Veranschaulichung:

A4=A3+0,9
A3=A2+0,9
A2=A1+0,9

Als Bezugswert habe ich eine Zahl mit zwei Nachkommastellen. Zwischendrin ergibt sich auch mal eine Zelle zu Null. Merkwürdigerweise rechnet mir Excel hier aber statt 0 den Wert -1,82299E-13 aus.

Wie kommt das zustande?

MfG,
Marius

Als Bezugswert habe ich eine Zahl mit zwei Nachkommastellen.
Zwischendrin ergibt sich auch mal eine Zelle zu Null.
Merkwürdigerweise rechnet mir Excel hier aber statt 0 den Wert
-1,82299E-13 aus.
Wie kommt das zustande?

Hallo Marius,

Ralf hat das ja schon erläutert. Dazu kommt noch Excel rechnet mit 15 signifikanten Dezimalstellen. Open und Libre Office Clac ähnlich.
Man kann das Format für Zahlen auf bis zu 30 Dezimalstellen hochsetzen aber gerechnet wird nur mit 15.

Versuch mal
123456789012345678901234567890
einzugeben als Zahl. Kannst auch an beliebiger Stelle EIN Komma setzen, macht keinen Unterschied.

Um wieder eine Null zu erhalten nimmt man sowas:
=WENN(ABS(D14-0)

Hallo Reinhard,

Ralf hat das ja schon erläutert. Dazu kommt noch Excel rechnet
mit 15 signifikanten Dezimalstellen. Open und Libre Office
Clac ähnlich.
Man kann das Format für Zahlen auf bis zu 30 Dezimalstellen
hochsetzen aber gerechnet wird nur mit 15.

Ach so ist das. Wieder was gelernt. Aber dennoch frage ich mich, ob das für einen Programmierer nicht ein Leichtes sein dürfte, diese Problematik irgendwie zu umgehen.

Um wieder eine Null zu erhalten nimmt man sowas:
=WENN(ABS(D14-0)

Hallo Marius,

hast du deinen Nicknamen auch andernorts? Nein nein, interessiert mich nicht wirklich wo du dich rumtreibst :smile: Mich interessiert einzig ob du schon mal den Witz gehört hast der mir eben erst auffiel, denn er hat was mit einem Teil deines Nicknamens zu tun, willstn hören äh lesen?

Ach so ist das. Wieder was gelernt.

Gerne.

Aber dennoch frage ich
mich, ob das für einen Programmierer nicht ein Leichtes sein
dürfte, diese Problematik irgendwie zu umgehen.

*mmmhhhmmm* das liegt daran wie man „umgehen“ deutet. Letztlich kann auch der weltbeste Programmierer mit dem weltbesten Computer an dem Grundproblem binär vs dezimal nichts ändern.

Was aber geht ist die Anzahl der signifikanten Stellen zu erhöhen. Wie bei der Zahl oder Nichtzahl „unendlich“ kann man sich da annähern.

Wenn man die Anzahl der signifikanten Stellen drastisch erhöht so daß da die „Ungenauigkeit“ nach einigen Rechenoperationen dann halt nicht 10^-16 hat sondern 10^-231 oder 10^-4711 oder noch winziger

Und dann kann man schon mit Fug und Recht (äh, was bedeutet eigentlich das Fug?) Excel sagen, behandle Winzigkeiten wie 10^-231 als Null.

Diese Genauigkeit bzw. genauer minimalere Ungenuigkeit kann dein Rechner auch.
Das Problem dabei bist du denn du stirbst weg bevor der PC fertig ist :frowning:
Bei 10^-231 nützt dir auch kein Supersuperrechner, der ist immer noch VIEL zu langsam.

Schad daß ich den einen Link nicht mehr habe. Da hat sich ein Excel-Vbaler die Mühe gemacht das was du meinst zu programmieren.

Nehmen wir mal als Beispiel das einfachste, die Addition.
Du willst zwei Zahlen addieren die jeweils 50 Ziffern haben. Wie schon beschrieben geht das in Excel nicht, fängt schon bei der Eingabe der Zahlen an.

Gibt man sie aber als Text ein so gilt da die max. Textlänge in einer Zelle.
Wenn diese Obergrenze dir nicht ausreicht für deine Monsterzahlen, kein Akt, füllste noch paar Zellen mit den Textzahlen.
Das gleiche mit der anderen zu addierenden Zahlen.

Dann bastelst du dir Vba-Code der beide Textzahlen addiert und das Ergebnis wieder als Textzahl ausgibt. Der Code ist sehr simpel. Er macht einzig das was du früher in der Schule gelernt hast bzw. gelernt haben könntest :smile:
Also beide „zahlen“ von rechts beginnend zu addieren.

Derart kann man sehr viele Rechenoperationen durchführen. Einzigstes Problem ist da die Laufzeit.

Um wieder eine Null zu erhalten nimmt man sowas:
=WENN(ABS(D14-0)

Hallo,

Das sind 10^-7g. So genaue Waagen hast du sehr garantiert
nicht.

http://de.wikipedia.org/wiki/Mikrowaage

MfG,

ujk