Maison >interface Web >js tutoriel >Pourquoi l'opérateur Modulo (%) de JavaScript produit-il des résultats inattendus avec des nombres négatifs ?
L'opérateur % de JavaScript pour les nombres négatifs : une surprise négative
L'opérateur de module (%) est un outil précieux pour travailler avec les restes. Cependant, lorsqu'il s'agit de nombres négatifs en JavaScript, les résultats peuvent être inattendus.
Le problème :
Dans des cas comme (-13) % 64, JavaScript renvoie -13, alors que les calculatrices classiques comme Google Calculator donnent un résultat positif (51). Cet écart provient du comportement de l'opérateur avec les opérandes négatifs.
Le correctif :
Pour résoudre ce problème, une implémentation personnalisée de l'opérateur de module pour les nombres négatifs peut être utilisée. :
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
Cette modification garantit que le résultat de (-13) % 64 est 51, s'alignant avec l'attendu résultat mathématique. Pour plus d'informations, reportez-vous à l'article « Le bug JavaScript Modulo ».
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!