Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

PHP Features

Last updated: 11 October 2026