Also mal zuerst wegen 1-2-3 oder Excel für solche Berechnungen:
Lehrerin: "Deine Rechenaufgaben sind ja alle falsch! Wie kommt denn das?"
Schülerin: "Was kann ich für die Bugs in Excel?"
****
Kurz: es ist nicht gesagt, dass der Einsatz eines Spreadsheets tatsächlich bessere Lösungen bringt. Keines der genannten Produkte beherrscht irgend eine Form von BCD-Arithmetik und ist damit der Problematik der Umrechnugspräzision ausgesetzt, die sich - wie man bei den theoretischen Informatikern nachlesen kann - nicht beheben lässt. Genauso, wie wir in der Dezimalschreibweise gewisse Zahlen nicht darstellen können (eindrittel zum Bleistift, da wir nicht unendliche 3er schreiben können) gibt es genauso Werte, die sich binär bei einer beschränkten Registerlänge (und die ist für einen realen Rechner unvermeidlich) nicht korrekt darstellen lassen. Wir arbeiten also in jedem Falle - egal welches Produkt - mit Näherungswerten. Bei längeren Berechnungen machen sich dann sofort die Probleme der Fehlerfortpflanzung bemerkbar. Um dies zu vertuschen, werden in den Implementationen in der Regel die letzten paar Binärstellen nicht angezeigt, sondern per Rundung "zum Verschwinden" gebracht.
Das am Anfagn erwähnte Resultat von 3,5, welches mit Round auf 3 runterrutscht, ist intern offensichtlich ein 3,499999999999999, welches durch die oben erwähnte Ausblendung als 3,5 darstellt.
Ganz typisch für dieses Phänomen ist ebenfalls das von Glombi 1.0 festgestellte Verhalten, dass bei Umstellung der Rechenreihenfolge das Ergebnis beeinflusst wird, das ist die Folge des permanenten Abschneidens von Werten weit hinter dem Komma, das bei Umstellung der Rechenreihenfolge an anderer Stelle oder gar nicht auftritt.
Ein relativ einfach einsehbares Beispiel für ein ähnliches Phänomen:
Rechnet man
100 ! / 99 !
bekommt man schon beim Zähler hoffnungslos einen Overflow, wenn mans so rechnet, wie es da steht.
Aendert man die Reihenfolge so, dass man abwechslungsweise einen Faktor vom Zähler und einen vom Nenner nimmt, dann gelingt die Ausrechnung:
100 / 99 * 99 / 98 * 97 / 97 ..... usw. nirgends auch nur der geringste Over- oder Underflow. Soviel zum Einfluss der Reihenfolge.
Wie gesagt, die genannten Spreadsheets sind von diesem Problem genau gleich betroffen wie Notes selbst (nur ziemlich sicher nicht unbedingt bei den gleichen Beispielen, da die internen Engines unterschiedllich arbeiten)