phpbar.de logo

Mailinglisten-Archive

[php] AW: [php] round() ?

[php] AW: [php] round() ?

Gloss Mathias Mathias.Gloss_(at)_start.de
Fri, 17 Mar 2000 13:05:31 +0100


Aloha,

> ----------
> Von: 	Stefan Engelhardt[SMTP:Stefan.Engelhardt_(at)_stud.fh-hannover.de]
> 
> > Kann mir jemand die LOGIK dahinter erklären ???
> >
> > Rein mathematisch ist 449.00 - 488.99 = 0.009999999999999
> > schlichtweg FALSCH.
> > Das man mit runden das wieder gerade biegen kann is mir klar,
> > nur wieso ist der Computer (oder php ? weil in pascal geht das
> > ohne rumfummeln ) anscheinend  zu doof das richtig zu berechnen ??
> Das hängt mit der internen Darstellung von Gleitkommazahlen zusammen.
> Angenommen, 
> 
[...]

Hinzufügen möchte ich noch der ausgezeichneten Erklärung von Stefan,
daß dieses Problem bei allen Programmiersprachen auftritt, sobald es
sich um Gleitkommazahlen handelt.

Die einzigste Abhilfe ist, die Werte als Integer in Pfennigen abzuspeichern.
Dann hast du nur ganze Zahlen, und es treten keine Rundungsfehler mehr
auf. Bei der Ausgabe kannst du sie ja dann durch 100 teilen, und hast
wieder DM und PF.

Dummerweise bzw. praktischerweise kennen Programmiersprachen wie
PHP und Perl keine Typdefinitionen der Variablen.

Viele Grüße, Mathias



php::bar PHP Wiki   -   Listenarchive