Ik ben momenteel bezig met het ontwikkelen van een berekenings applicatie met behulp van PHP. Hierbij wordt er regelmatig gebruik gemaakt van het afronden van getallen. Nu kwam ik er achter dat bij sommige waardes er een verschil zit van 1 cent. Het blijkt te zitten in de afronding die niet helemaal goed verloopt.
Een quickfix is om de round 2x uit te voeren. Eerst af te ronden op 3 decimalen en daarna afronden op 2 decimalen. Ik maak gebruik van PHP5
Een voorbeeld:
Hoe kan het dat de round functie zo'n "fout" maakt? En is er een andere mogelijkheid voor het afronden van decimalen dat wel nauwkeurig is?
Een quickfix is om de round 2x uit te voeren. Eerst af te ronden op 3 decimalen en daarna afronden op 2 decimalen. Ik maak gebruik van PHP5
Een voorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
| <?php $round1 = round(8.1246, 2); echo $round1; // 8.12 // Quickfix $round1 = round(8.1246, 3); //8.125 $round2 = round($round1, 2); echo $round2; // 8.13 ?> |
Hoe kan het dat de round functie zo'n "fout" maakt? En is er een andere mogelijkheid voor het afronden van decimalen dat wel nauwkeurig is?