Maison > Article > développement back-end > Analyse des raisons pour lesquelles 8%3 est égal à 0 en PHP
Expliquez pourquoi 8%-3 est égal à 0 en PHP
En PHP, si nous essayons de calculer 8%-3 , nous obtiendrons une valeur qui donne 0 . Cela peut dérouter certains développeurs car en mathématiques, nous nous attendons à ce que le résultat de l'évaluation de cette expression soit 2. Cependant, en PHP, il existe des règles spéciales pour l'utilisation de l'opérateur reste (%), ce qui peut conduire à des résultats inhabituels.
Tout d'abord, comprenons la définition de l'opérateur reste en mathématiques. L'opérateur reste est utilisé pour calculer le reste après avoir divisé un nombre par un autre nombre. En mathématiques, cet opérateur est intuitif pour les entiers positifs. Par exemple, en calculant le reste de 8 divisé par 3, on obtient 2. En effet, 8 est divisible deux fois par 3, ce qui laisse un reste de 2.
Cependant, en PHP, ce n'est pas toujours le cas. Lorsque l'opérateur reste est appliqué à un nombre négatif, le résultat peut être négatif, nul ou positif, selon les signes du dividende et du diviseur. Plus précisément, lorsque le dividende est un nombre positif et que le diviseur est un nombre négatif, les règles de calcul de l'opérateur reste sont les suivantes :
Si le dividende peut être divisé par le diviseur, le résultat est un nombre négatif.
Si le dividende ne divise pas le diviseur, mais que le dividende est positif, le résultat est un nombre positif.
Si le dividende ne divise pas le diviseur mais que le dividende est négatif, le résultat est un nombre négatif.
Ensuite, analysons pourquoi le résultat de 8%-3 en PHP est 0. Selon les règles ci-dessus, nous pouvons savoir que 8 est un nombre positif et -3 est un nombre négatif, le résultat devrait donc être un nombre positif. Cependant, lors du processus de calcul spécifique, PHP effectue certains traitements internes.
Lors du calcul de 8%-3, PHP calculera d'abord le plus grand entier n tel que n fois -3 soit inférieur ou égal à 8. Dans cet exemple, n=2 car 2 fois -3 est égal à -6, ce qui est inférieur ou égal à 8. PHP ajoute ensuite -6 à 8 pour obtenir le résultat final de 2. Le résultat est donc 2 et non 0.
Alors pourquoi le résultat est-il 0 ? En effet, l'opérateur de reste est également affecté par le type de données du dividende. Si le dividende est un nombre entier, tel que 8, le résultat est 2. Cependant, si le dividende est un nombre à virgule flottante, tel que 8,0, le résultat devient 0.
En effet, lorsque le dividende est un nombre à virgule flottante, le calcul dans PHP le convertira en un entier, c'est-à-dire convertira 8,0 en 8, puis effectuera le calcul selon les règles mentionnées précédemment. Puisque 8 ne divise pas -3, il vaut 0.
Pour résumer, la raison pour laquelle le résultat de 8%-3 en PHP est 0 est due à l'impact des règles de traitement et des types de données de PHP sur les nombres négatifs lors du calcul de l'opération restante. Les développeurs doivent prêter attention à ces règles et à la conversion des types de données lors de l'écriture du code pour éviter des résultats de calcul accidentels et erronés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!