Hi Björn,
"Das darf doch eigentlich nicht passieren."?
Doch, mit der Anzeige der Differenz wollte ich dir zeigen, dass das "FALSCH" durchaus ok ist.
Such mal hier bei "
Alle Recherchen" z. B. nach Rechengenauigkeit.
31/60 ist ein unendlicher Dezimalbruch. In so einem Computer gibt es aber nur endlich viele Speicherplätze.
Deshalb wird der Wert natürlicherweise nicht genau gerechnet/gespeichert,
die Genauigkeit ist auf eine mehr oder weniger bestimmte Stellenzahl begrenzt.
Hier beträgt sie ca. signifikante 15 Stellen. Dahinter kann irgend etwas stehen.
Bei zwei mathematisch gleichen Werten können sich die Stellen dahinter unterscheiden,
wenn die Werte auf unterschiedliche Weise berechnet wurden.
Oft ist ein Ausweg, die Werte vor dem Vergleich noch mal zu runden.
Oder man prüft statt
a = b * c
die Differenz auf einen zulässigen Maximalwert:
Abs(a - b * c) < 0.000000000001
Bei großen Zahlen kann es natürlich genauso gut Probleme geben.
Die Formeln der Zeile 2 sind hier nach unten kopiert:
| A | B | C | D |
1 | 111111111111111 | 111111111111111 | 111111111111111,0000000000 | 11111111,000000000000000 |
2 | 222222222222222 | 777777777777777 | 15873015873015,9000000000 | 1587301,571428570000000 |
3 | 444444444444444 | 5444444444444440 | 2267573696145,1200000000 | 226757,367346939000000 |
4 | 888888888888888 | 38111111111111100 | 323939099449,3030000000 | 32393,909620991200000 |
5 | 1777777777777780 | 266777777777778000 | 46277014207,0433000000 | 4627,701374427320000 |
6 | 3555555555555550 | 1867444444444440000 | 6611002029,5776200000 | 661,100196346760000 |
7 | 7111111111111100 | 13072111111111100000 | 944428861,3682310000 | 94,442885192394300 |
Formeln der Tabelle |
Zelle | Formel | A2 | =A1*2 | B2 | =B1*7 | C2 | =C1/7 | D2 | =D1/7 |
|
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort