Maison > Article > interface Web > Pourquoi l'opérateur de module JavaScript produit-il des résultats inattendus avec des nombres négatifs ?
Comportement de l'opérateur de module JavaScript pour les nombres négatifs
En JavaScript, l'opérateur de module (%) calcule le reste de l'opération de division. Cependant, il se comporte différemment pour les valeurs de dividendes négatives que les conventions mathématiques et autres langages de programmation.
Lors de l'exécution d'une opération de module sur un dividende négatif, JavaScript renvoie un reste négatif, tandis que les calculs mathématiques et la plupart des autres langages de programmation donnent un résultat positif. un. Cela peut être démontré avec l'exemple suivant :
Résolution du Problème
Pour obtenir le résultat correct pour les opérations de module impliquant des nombres négatifs en JavaScript, nous pouvons utiliser la fonction personnalisée suivante :
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
Cette fonction, lorsqu'elle est appliquée aux dividendes négatifs, garantit que le reste renvoyé est positif. Par exemple :
console.log((-13).mod(64)); // Output: 51 (correct result)
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!