Maison > interface Web > js tutoriel > Comment puis-je corriger le comportement inattendu de l'opérateur Modulo de JavaScript avec des nombres négatifs ?

Comment puis-je corriger le comportement inattendu de l'opérateur Modulo de JavaScript avec des nombres négatifs ?

Susan Sarandon
Libérer: 2024-11-30 12:23:12
original
249 Les gens l'ont consulté

How Can I Fix the Unexpected Behavior of JavaScript's Modulo Operator with Negative Numbers?

Correction de l'opérateur modulo de nombres négatifs en JavaScript

En JavaScript, l'opérateur modulo (%) renvoie le reste lors de la division d'un nombre par un autre. Cependant, pour les nombres négatifs, l'opérateur modulo de JavaScript se comporte de manière inattendue, renvoyant un résultat négatif. Ce problème se produit car JavaScript utilise en interne des entiers signés, qui ne conviennent pas aux opérations modulo.

Pour résoudre ce problème, vous pouvez utiliser la fonction de mod personnalisée suivante :

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};
Copier après la connexion

Cette fonction garantit que le résultat modulo est toujours positif, conformément à la définition mathématique de modulo.

Utilisation :

console.log(-13.mod(64)); // Output: 51
Copier après la connexion

Explication :

La fonction mod personnalisée calcule d'abord le reste en utilisant le natif Opérateur modulo JavaScript. Ensuite, il ajoute le diviseur (n) au reste. Cela garantit que le résultat n’est pas négatif. Enfin, il effectue une deuxième opération modulo pour obtenir le reste positif final.

Cette fonction modulo modifiée aligne le comportement de JavaScript avec le résultat mathématique attendu, facilitant ainsi les calculs cohérents et précis impliquant des nombres négatifs.

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