Heim > Web-Frontend > js-Tutorial > Wie kann ich das unerwartete Verhalten des Modulo-Operators von JavaScript mit negativen Zahlen beheben?

Wie kann ich das unerwartete Verhalten des Modulo-Operators von JavaScript mit negativen Zahlen beheben?

Susan Sarandon
Freigeben: 2024-11-30 12:23:12
Original
250 Leute haben es durchsucht

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

Modulo-Operator für negative Zahlen in JavaScript korrigieren

In JavaScript gibt der Modulo-Operator (%) den Rest zurück, wenn eine Zahl durch eine andere dividiert wird. Bei negativen Zahlen verhält sich der Modulo-Operator von JavaScript jedoch unerwartet und gibt ein negatives Ergebnis zurück. Dieses Problem entsteht, weil JavaScript intern vorzeichenbehaftete Ganzzahlen verwendet, die nicht für Modulo-Operationen geeignet sind.

Um dieses Problem zu beheben, können Sie die folgende benutzerdefinierte Mod-Funktion verwenden:

Number.prototype.mod = function (n) {
  "use strict";
  return ((this % n) + n) % n;
};
Nach dem Login kopieren

Diese Funktion stellt sicher dass das Modulo-Ergebnis immer positiv ist, im Einklang mit der mathematischen Definition von Modulo.

Verwendung:

console.log(-13.mod(64)); // Output: 51
Nach dem Login kopieren

Erklärung:

Die benutzerdefinierte Mod-Funktion berechnet zunächst den Rest unter Verwendung des nativen Moduls JavaScript-Modulo-Operator. Anschließend wird der Divisor (n) zum Rest addiert. Dadurch wird sichergestellt, dass das Ergebnis nicht negativ ist. Abschließend führt es eine zweite Modulo-Operation durch, um den endgültigen positiven Rest zu erhalten.

Diese modifizierte Modulo-Funktion richtet das Verhalten von JavaScript an dem erwarteten mathematischen Ergebnis aus und erleichtert so konsistente und genaue Berechnungen mit negativen Zahlen.

Das obige ist der detaillierte Inhalt vonWie kann ich das unerwartete Verhalten des Modulo-Operators von JavaScript mit negativen Zahlen beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage