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

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

DDD
Libérer: 2024-12-01 10:52:09
original
724 Les gens l'ont consulté

Why Does JavaScript's Modulo Operator (%) Produce Unexpected Results with Negative Numbers?

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal