Domino 9 und frühere Versionen > Entwicklung
@Round(3,5) gibt 3 !?
Glombi:
Ich habe es weiter untersucht:
Es ist
3,49999999999999 = 3,5
und
3,4999999999999 = 3,4999999999999
Wie: Man gebe das als Vorgabewert in ein Zahlfeld ein und speichere die Maske. Dann wieder öffnen.
Mit Notes kann man dann wahrscheinlich auch die Quadratur des Kreises beweisen ;D
Semeaphoros:
--- Zitat von: Glombi am 31.03.04 - 15:36:22 ---Ich habe es weiter untersucht:
Es ist
3,49999999999999 = 3,5
--- Ende Zitat ---
Moment, langsam. Da müsste man dann noch dahinter schauen, was da wirklich abgespeichert ist. Kann tatsächlich sein, dass durch die genannten Effekte der Wert geändert wird, muss aber nicht, möglich, dass nur die Darstellung geändert ist. Das nur so der Vollständigkeit halber.
Glombi:
Du hast recht, es wird 3,5 angezeigt, intern wird (irgendwo) der Wert 3,49999999999999 verwendet.
Wenn ich als Wert
3,5 - 3,49999999999999 nehme, zeigt er
1,0214051827E-14 an.
Erst bei
3,5 - 3,49999999999999999999999999999999999999
ist es wirklich 0.
Aber irgendwie ist das für den User nicht ganz verständlich, wenn er vor dem Rechner sitzt...
Semeaphoros:
Natürlich ist das für den User nicht verständlich, technisch aber leider überhaupt nicht zu beherrschen.
Welcher User glaubt Dir das, wenn Du ihm sagst, dass der Taschenrechner ungenau rechnet? Ist dasselbe Phänomen, und doch glauben fast alle Benutzer dieser Dinger, dass die wirklich richtig rechnen ....... tja .....
koehlerbv:
Der Taschenrechner kommt aber zumindest mit der von cococo genannten Formel klar. 1-2-3 auch (incl. runden). Trotzdem hat Jens natürlich vollkommen Recht - intern werden die Ergebnisse bei entsprechenden Voraussetzungen nur als "Teil der Wahrheit" weiter verarbeitet.
Ein denkbares Verfahren (was aber auch nicht garantiert, das es unter allen Umständen funktioniert !!!) ist, die Zwischenergebnisse normiert zwischenzuspeichern. Aber auch hier Fallstricke ! Ein simples Beispiel:
1/3 + 1/3 + 1/3 = 1,00. Soweit okay. Wenn man aber hier die drei Zwischenergebnisse "sicherheitshalber" jeweils auf zwei Dezimalstellen rundet, dann wird daraus
0,33 + 0,33 + 0,33 = 0,99. Nicht gerade befriedigend. Besser, aber eben auch nicht sicher - sind da Taschenrechner, 1-2-3, Excel und Konsorten.
Wenn die Stellengenauigkeit eine sehr grosse Rolle spielt, ist überall (nicht nur in Notes) viel Strategie gefragt.
Bernhard
PS: Wie war das bei der Euro-Umstellung ? Auf wieviel Stellen mussten da die Zwischenergebnisse gerundet werden ? Fünf, glaube ich ...
PPS: COBOL müsste doch eigentlich "perfekt" rechnen können ? Vielleicht sollte man sowas zwischenschalten ;D
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln