Verhalten des Modulus-Operators in JavaScript für negative Zahlen
In JavaScript berechnet der Modulus-Operator (%) den Rest der Divisionsoperation. Bei negativen Dividendenwerten verhält es sich jedoch anders als bei mathematischen Konventionen und anderen Programmiersprachen.
Beim Durchführen einer Moduloperation für einen negativen Dividenden gibt JavaScript einen negativen Rest zurück, während mathematische Berechnungen und die meisten anderen Programmiersprachen einen positiven Rest ergeben eins. Dies kann anhand des folgenden Beispiels demonstriert werden:
Behebung des Problem
Um das korrekte Ergebnis für Moduloperationen mit negativen Zahlen in JavaScript zu erhalten, können wir die folgende benutzerdefinierte Funktion verwenden:
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
Diese Funktion, wenn sie auf negative Dividenden angewendet wird, stellt sicher, dass der zurückgegebene Rest positiv ist. Zum Beispiel:
console.log((-13).mod(64)); // Output: 51 (correct result)
Das obige ist der detaillierte Inhalt vonWarum erzeugt der Modulus-Operator von JavaScript unerwartete Ergebnisse mit negativen Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!