I am working on a PHP-script that handles monetairy amounts, and therefore needs to be exact with 2 decimals. To do this, I convert the user-input to a number by multiplying it with 100, and then casting it to int. This works fine, untill I recently discovered a number that increases by 1 when cast to int.
the malfunctioning code:
$number = (int)(str_replace(',','.',$_POST["input"])*100);
The number that gives problems is 2509,22 (I live in the Netherlands, so we use comma's for decimals, hence the str_replace in the above line of code). This value creates the integer $number 250921, which is obviously 1 too low. I know that int has limits, but this number is well within those limits as far as I'm aware...