Ein kleiner aber entscheidender Bug in Excel sorgt in einem Anwenderforum für Aufruhr. Ein Nutzer hat herausgefunden, dass die Tabellenkalkulation bei einer einfachen Rechenaufgabe versagt und einen unrichtigen Wert ausspuckt. Dabei könnte jeder Grundschüler die Aufgabe richtig lösen, bei der die teure Excel-Software die Segel streicht.
Ein kleiner aber entscheidender Bug in Excel sorgt in dem Anwenderforum vonAcehardware.comfür Aufruhr. Ein Nutzer hat herausgefunden, dass die Tabellenkalkulation bei einer einfachen Rechenaufgabe versagt und einen unrichtigen Wert ausspuckt. Dabei könnte jeder Grundschüler die Aufgabe richtig lösen, bei der die teure Excel-Software die Segel streicht.
Hier die Rechenaufgabe.
In die einzelnen Zellen eines Tabellenblatts werden untereinander folgende Zahlen eingetragen:
0,05
-0,07
0,02
0
Anschließend lässt man Excel die Summe aus dem Zahlenblock errechnen. Das Ergebnis ist nicht Null, sondern "-3,46945E-18" (siehe Bild oben rechts).
Anscheinend unterläuft Excel bei dieser einfachen Rechenoperation ein Rundungsfehler. Das Problem liegt an der letzten Ziffer "0" in der vierten Zeile. Wird diese weggelassen, schafft es Excel, die Rechenaufgabe korrekt zu lösen.
Eine andere Möglichkeit Excel dazu zu bewegen, die Aufgabe mit der Note "1+" abzuschließen, ist etwas umständlicher: Man füge vor der Summe eine "1" ein, ziehe anschließend die "1" wieder ab und schon stimmt das Ergebnis wieder.
Standardmäßig ist bei Excel das Format "Standard" für die Zellen aktiviert. Ändert man das Format in "Zahl" um, ist das Ergebnis ebenfalls wieder korrekt.
Der Grund für das Rechenproblem von Excel ist so alt wie das Programm selbst: Die meisten Zahlen mit Nachkommastellen haben keine direkte Entsprechung im binären System. Der Prozessor kann aber nur im binären System rechnen und dadurch kommt es bei der Umwandlung der Zahlen zu Fehlern. Die Rechenfehler sind relativ klein und lassen sich auch bei entsprechender Programmierung abfangen. Das schafft auch jeder handelsübliche Taschenrechner. Microsoft hat die bisher bekannten Rundungsfehler aus Excel verbannt. Allerdings wurde das Problem nicht ganz gelöst, wie die hier gezeigte Rechenaufgabe beweist.
Für StarCalc kein Problem: Null ist gleich Null.
Übrigens: Die im kostenlosen Office-Paket StarOffice enthaltene Tabellenkalkulation StarCalc schafft die Rechenaufgabe problemlos (siehe Bild).







24.01.12
Die Problemlösung 2 (das Format auf Zahl einzustellen) funktioniert für dieses Beispiel zwar [I]für den ersten Augenblick[/I] ... Fügt man in eine weitere Zelle eine 0 (echte Null) ein und lässt diese mit der berechneten Summe vergleichen, wird FALSCH ausgegeben. Ich vermute also nur die Ansicht wird für den Benutzer geändert, nicht jedoch die tatsächlich hinterlegte Zahl. Kopiere ich das Ergebnis der Summe und füge es [B]als Wert [/B]wieder ein, erhält man wieder die -3,46945E-18
Die Problemlösung 1 (+1-1 zur Summe addieren) funktioniert hier im Beispiel tatsächlich gut. In einem anderen Beispiel widerum nicht: 2080,53 + (-2070,52) = 10,01 ... Bei der Summenberechnung im Excel entsteht jedoch das Ergebnis 10,0100000000002 und wird bei +1-1 auch beibehalten!
Antwort schreiben
24.01.12
das bedeutet, dass man das ergebnis der berechnung verfälscht, damit der (eigentlich korrekt errechnete!) wert -3,46945E-18 nach 0 "abgerundet" wird.
der hintergrund ist, dass die excel die eingegeben zahlen in binäre gleitkommazahlen umwandelt. leider haben aber die meisten 0,irgendwas zahlen keine endliche entsprechnung im binärsystem, sonder entwickeln in periodische, nicht abbrechende kommazahlen (so wie 1/7 im dezialsystem). nachdem man nicht unendlich viel speicherplatz für eine zahl investieren kann, muss man halt irgendwo abbrechen und mit einer näherung weiterarbeiten.
probier bei deinem beispiel +10000-10000; wahrscheinlich rechnet excel dann wieder "richtig"
ps: übrigens wiedermal ein schönes beispiel, dass man schon wissen sollte was die maschine so tut, der man fleißig daten füttert...
Antwort schreiben
24.01.12
Antwort schreiben
24.01.12
Antwort schreiben
24.01.12
Antwort schreiben
25.01.12
Ist das Problem immer noch aktuell?
Antwort schreiben
30.01.12
Antwort schreiben
30.01.12
Antwort schreiben