| |
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.05.2018 ▲ |
|
|
|
|
RGH | Hallo,
das liegt daran, dass es nicht alle Ganzzahlen eine exakte interne Bit-Entsprechung als Fließkommazahl haben.
(Das ist auch der Grund, warum Vergleiche von Fließkommazahlen mit Ganzzahlen gerne daneben gehen und niemals verwandt werden sollten.)
Diese Zeilen zeigen das Problem:
Bei der Defaulteinstellung von 6 Nachkommastellen, fällt es nicht so leicht auf. Mit Round() lässt sich das Problem umgehen.
Ich habe lange in der Finanzbranche programmiert und da war das eine stetige Falle, die an jeder Ecke darauf wartete, dass man hineinfällt. Das Problem gibt es auch in JAVA, Delphi oder C, da es mit der internen Darstellung von Fließkommazahlen des Prozessors zu tun hat. Einige Sprachen bieten für rundungsfehlerfreie Berechnungen daher BCD-Arithmetik an.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 24.05.2018 ▲ |
|
|
|
|
Jörg Sellmeyer | Danke, das erklärt es.
Hier [...] sind ein paar Möglichkeiten, um das ohne Rundungsprobleme zu lösen. |
|
|
| |
|
|