Résultats négatifs inattendus dans l'opérateur modulo de JavaScript
Lors de l'utilisation de l'opérateur modulo (%) en JavaScript pour des nombres négatifs, cela peut produire des résultats surprenants . Par exemple, (-13) % 64 dans Google Calculator est égal à 51, tandis qu'en JavaScript, il renvoie -13.
Comprendre le problème
L'opérateur modulo de JavaScript calcule le reste après division, mais il n'applique pas la même logique aux nombres négatifs que les opérations mathématiques comme Google Calculator. En JavaScript, l'opérateur modulo renvoie une valeur avec le même signe que le premier opérande.
Résoudre le problème
Pour corriger ce comportement et assurer la cohérence avec les opérations mathématiques, vous pouvez utiliser l'implémentation personnalisée suivante du modulo opérateur :
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
Utilisation
Une fois la méthode modulo personnalisée définie, vous pouvez l'utiliser pour calculer le reste des nombres négatifs :
console.log((-13).mod(64)); // Outputs 51
Ce comportement corrigé s'aligne sur le résultat mathématique attendu et garantit un comportement cohérent sur différentes plateformes.
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!