phpbar.de logo

Mailinglisten-Archive

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

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

Gloss Mathias Mathias.Gloss_(at)_start.de
Fri, 17 Mar 2000 16:48:54 +0100


Moin auch :-)

eigentlich bezog sich meine Aussage auf die standardmäßigen
Datentypen wie float/integer.

Mit den BC-Dingern hab ich das noch nicht ausprobiert. Aber
irgendwie sehe ich da auch schwarz ob man da nicht ab und
zu über das automatische Type-casting stolpert...

Ich werd mir die Dinger mal ansehn, vielleicht seh ich dann klarer ;-)


Grüße, Mathias

> ----------
> Von: 	Martin Rieth[SMTP:mrieth_(at)_metanormal.de]
> Antwort an: 	php_(at)_infosoc.uni-koeln.de
> Gesendet: 	Freitag, 17. März 2000 14:34
> An: 	Gloss Mathias
> Cc: 	Martin Rieth
> Betreff: 	Re: [php] round() ?
> 
> Moin Moin Gloss,
> 
> Es ist moeglich genaue, exakte Werte zu berechnen.
> Das magische Stichwort heisst: Binary Coded Decimal  (BCD)
> Unter PHP als:
>   "  BC Arbitrary Precision Math Functions "  zu finden.
> Grund hier wird faktisch mit Dezimalzahlen gerechnet. Also bei jedem
> Nibble werden einige Werte vernachlaessigt ...
> 0-9 wird genutzt
> A-F wird vergeudet.
> Die hexadezimale Zahl: 0x42 entspricht also 42. :-) HURRA! :-)
> 
> Keine Umrechnung folglich keine Fehler ... :-7
> 
> Deine Gedanken erreichten mich am Freitag, 17. März 2000 und veranlassten
> mich zu folgendem:
> >> 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, 
> G> Hinzufügen möchte ich noch der ausgezeichneten Erklärung von Stefan,
> G> daß dieses Problem bei allen Programmiersprachen auftritt, sobald es
> G> sich um Gleitkommazahlen handelt.
> G> Die einzigste Abhilfe ist, die Werte als Integer in Pfennigen
> abzuspeichern.
> G> Dann hast du nur ganze Zahlen, und es treten keine Rundungsfehler mehr
> G> auf. Bei der Ausgabe kannst du sie ja dann durch 100 teilen, und hast
> G> wieder DM und PF.
> 
> 
> I say 42, Martin
> ----- _   _   _   _  . .  _   _  .  .  _  .
>      |-' /-\ |-< /-\ |\| (_) |-< |\/| /-\ |_
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      eMail    = mailto:mrieth_(at)_paranormal.de
>       Homepage = http://www.paranormal.de/
>          Ich bin PARANORMAL - Du auch?
> 
> 
> 
> -- 
> ** Durchgehend geöffnet: http://www.php-center.de **
> Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de
> http://infosoc.uni-koeln.de/mailman/listinfo/php
> 


php::bar PHP Wiki   -   Listenarchive