Heim >Web-Frontend >js-Tutorial >Warum führt der Modulo-Operator (%) von JavaScript zu unerwarteten Ergebnissen mit negativen Zahlen?
JavaScripts %-Operator für negative Zahlen: Eine negative Überraschung
Der Moduloperator (%) ist ein wertvolles Werkzeug für die Arbeit mit Resten. Wenn es jedoch um negative Zahlen in JavaScript geht, können die Ergebnisse unerwartet sein.
Das Problem:
In Fällen wie (-13) % 64 gibt JavaScript zurück -13, während herkömmliche Rechner wie Google Calculator ein positives Ergebnis liefern (51). Diese Diskrepanz ist auf das Verhalten des Operators bei negativen Operanden zurückzuführen.
Die Lösung:
Um dieses Problem zu lösen, kann eine benutzerdefinierte Implementierung des Moduloperators für negative Zahlen verwendet werden :
Number.prototype.mod = function (n) { "use strict"; return ((this % n) + n) % n; };
Diese Änderung stellt sicher, dass das Ergebnis von (-13) % 64 51 ist, was den Erwartungen entspricht mathematisches Ergebnis. Weitere Informationen finden Sie im Artikel „Der JavaScript-Modulo-Bug“.
Das obige ist der detaillierte Inhalt vonWarum führt der Modulo-Operator (%) von JavaScript zu unerwarteten Ergebnissen mit negativen Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!