2010-12-25 2 views

Répondre

5

Les flottes n'ont pas de précision arbitraire. Le résultat de 19.99 * 100 est actuellement représenté par 1998.9999999999. Si vous imprimez cela, il apparaîtra comme 1999. C'est ce que strval() fait. Attendu que (int) va l'enterrer.

2

Vérifiez aussi ...

http://php.net/manual/en/function.ceil.php

http://php.net/manual/en/function.floor.php

http://php.net/manual/en/function.round.php

Vous verrez comment tout fonctionne.

echo round(9.5, 0, PHP_ROUND_HALF_UP); // 10 
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9 
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10 
echo round(9.5, 0, PHP_ROUND_HALF_ODD); // 9 
echo round(8.5, 0, PHP_ROUND_HALF_UP); // 9 
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8 
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8 
echo round(8.5, 0, PHP_ROUND_HALF_ODD); // 9