Mailinglisten-Archive |
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?
php::bar PHP Wiki - Listenarchive