Reputation: 200
Given this PHP code:
// total is 71.24 (float)
$value = $total * 100;
var_dump($value);
$valuecast = (int)$value;
var_dump($valuecast);
settype($value, 'int');
var_dump($value);
var_dump($value) gives float(7124)
var_dump($valuecast) gives int(7123)
var_dump($value) after settype gives int(7123)
How can I get the correct type conversion?
Upvotes: 4
Views: 2765
Reputation: 316969
From PHP Manual on TypeCasting Float to Integer
Warning
Never cast an unknown fraction to integer, as this can sometimes lead to unexpected results.
<?php echo (int) ( (0.1+0.7) * 10 ); // echoes 7! ?>
See also the warning about float precision.
Upvotes: 4