Maison > interface Web > js tutoriel > Pourquoi l'opérateur de module JavaScript produit-il des résultats inattendus avec des nombres négatifs ?

Pourquoi l'opérateur de module JavaScript produit-il des résultats inattendus avec des nombres négatifs ?

Patricia Arquette
Libérer: 2024-11-26 02:22:12
original
762 Les gens l'ont consulté

Why Does JavaScript's Modulus Operator Produce Unexpected Results with Negative Numbers?

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 :

  • Calculatrice Google : (-13) % 64 = 51 (résultat attendu)
  • JavaScript : console.log(-13 % 64) = -13 (résultat incorrect)

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;
};
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal