Probleem met berekening
Dyan van der Nat
05/07/2013 13:47:23Hallo,
Ik heb een probleem met een berekening:
---------------------------------------
De uitkomst hiervan is:
---------------------------------------
1447.14
1447.14
2.27373675443E-13
Ik heb deze berekening ook in Applescript, Delphi/Pascal, VBScript en PHP geprobeerd, allemaal met dezelfde uitkomst.
Kan iemand mij vertellen wat er niet goed gaat?
Groeten,
Dyan.
Ik heb een probleem met een berekening:
---------------------------------------
Code (php)
De uitkomst hiervan is:
---------------------------------------
1447.14
1447.14
2.27373675443E-13
Ik heb deze berekening ook in Applescript, Delphi/Pascal, VBScript en PHP geprobeerd, allemaal met dezelfde uitkomst.
Kan iemand mij vertellen wat er niet goed gaat?
Groeten,
Dyan.
PHP hulp
15/01/2025 12:22:01Dimitri Van Reeth
05/07/2013 14:04:41PHP gebruikt floats ipv decimale types zoals bij bijvoorbeeld MYSQL, waardoor je inaccurate uitkomsten kan krijgen.
Dit kan je dan oplossen door number_format te gebruiken.
Dit kan je dan oplossen door number_format te gebruiken.
Gewijzigd op 05/07/2013 14:05:00 door Dimitri Van Reeth
Erwin H
05/07/2013 14:09:04Dat heeft te maken met de machineprecisie. Je werkt met niet gehele getallen die intern in een computer in bits worden opgeslagen. Niet gehele getallen kunnen niet helemaal precies worden gevormd, waardoor je altijd een kleine afwijking gaat krijgen. Hoe meer reken stappen je maakt, hoe groter de afwijking wordt. De afwijking in jouw geval is wat je ziet als je de twee getallen van elkaar aftrekt.
De hele theorie is nog wat complexer dan dit overigens.
Oplossing: ga nooit uit van een perfecte 0, die krijg je namelijk nooit, kijk altijd of het verschil voldoende klein is, zo ja, dan is het in feite nul. Wat voldoende klein is mag jezelf definieren, dat is namelijk ook niet altijd gelijk.
De hele theorie is nog wat complexer dan dit overigens.
Oplossing: ga nooit uit van een perfecte 0, die krijg je namelijk nooit, kijk altijd of het verschil voldoende klein is, zo ja, dan is het in feite nul. Wat voldoende klein is mag jezelf definieren, dat is namelijk ook niet altijd gelijk.