Heim >Web-Frontend >js-Tutorial >Wie kann ich das unerwartete Verhalten des Modulo-Operators von JavaScript mit negativen Zahlen beheben?
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; };
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
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!