Des entiers et des flottants
<?php
$one = 3 * 0.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333;
var_dump($one); // float(1)
var_dump(1 === $one);
$float = 1 / 3 * 3;
var_dump( $float );
$int = 3 / 3;
var_dump( $int );
print ini_get('precision').PHP_EOL;
// 14 three --------------
$notOne = 3 * 0.33333333333333;
print $notOne;
?>
Première chose à noter dans cet article : PHP accepte n’importe quel nombre de décimales lorsqu’elles sont codées en dur dans la source. Il s’arrêtera à 14, ce qui correspond au niveau de precision dans le fichier php.ini. Le reste est ignoré, il peut donc être aussi long que vous le souhaitez, cela n’a pas d’importance, sauf pour le temps de lecture du fichier.
Ensuite, un tel nombre finit par être un décimal. Cela signifie que lorsqu’il est multiplié par son inverse, il peut se retrouver à 1, mais c’est toujours un flottant, il n’est donc pas possible de le comparer à l’entier 1, ni à aucun autre décimal 1, car il peut exister une infime différence.
Enfin, l’ordre de la division est important : lorsque le résultat intermédiaire est un décimal, le résultat final est également un décimal. Mais lorsque PHP peut maintenir la division dans les valeurs entières, comme 3 / 3 ou 6 / 3, alors le résultat final est aussi un entier.
See Also
- Integers and Floats [Try me]
PHP Features
Last updated: 11 October 2026