Mailinglisten-Archive |
Das funktioniert nicht:
round(1.5) = 1.4999999999 = 1
round(2.5) = 2.5000000001 = 3
round(3.5) = 3.4999999999 = 3
round(4.5) = 4.5000000001 = 5
...
Ungetestet, probiers einfach mal aus. Dann addiere einen Betrag von
0.000000002 dazu. Das Ergebnis sollte dann stimmen.
-Egon
Besuchen Sie Six auf der CeBIT (24.2.-1.3.) in Halle 10, Stand 425,
und auf der Hannover-Messe (20.-25.3.) in Halle 14, Stand J50!
On Sun, 20 Feb 2000, Alexander Ott wrote:
> egon schmid wrote:
> >Hi Pascal,
> >das ist kein Fehler, denn KEIN Compiler kann eine Flieskommazahl exakt
> >darstellen. So wird zum Beispiel 1.5 intern als 1.499999999999...
> >dargestellt und 2.5 als 2.5000000001...
> >Als Abhilfe kann man einen sehr kleinen Betrag dazu addieren. Oder mit der
> >entsprechenden Zehnerpotenz hochrechnen und mit ganzen Zahlen
> >weiterrechnen.
>
> .... oder man rundet die zahl auf 4 oder 8 oder 10 Stellen nach dem Komma,
> dann stimmts wieder!
php::bar PHP Wiki - Listenarchive