Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
AW: Programmergebnise verschieden auf zwei Rechnern
10. Mär 2016, 16:04
Double kann zwar mit Zahlen von 324 Nachkommastellen bis 308 Vorkommastellen umgehen.
Aber Double hat nur 15-16 signifikante Stellen.
Es sind also immer nur die obersten 15 Dezimalstellen "korrekt" und alles danach ist quasi undefiniert und unterliegt Rundungsfehlern.
0.00000000000000000123456789012345xxxxxxx
123456.789012345xxxxxxx
123456789012345xxxxxxxxxxxxxxxxxx.xxxxxxx
Bei Extended sind es 19-20 signifikante Stellen und bei Single nur 7-8.
7-8 heißt : 12345678 geht, aber 87654321 nicht ... quasi wie 7,5 Dezimalstellen.
Und ein Range-Check knallt erst, wenn die Zahl größer als 10^308 wird ... für Rundungsfehler gibt es keine Prüfung.
$2B or not $2B
Geändert von himitsu (10. Mär 2016 um 16:11 Uhr)
|