Heim >Web-Frontend >js-Tutorial >Warum führt der Modulo-Operator (%) von JavaScript zu unerwarteten Ergebnissen mit negativen Zahlen?

Warum führt der Modulo-Operator (%) von JavaScript zu unerwarteten Ergebnissen mit negativen Zahlen?

DDD
DDDOriginal
2024-12-01 10:52:09633Durchsuche

Why Does JavaScript's Modulo Operator (%) Produce Unexpected Results with Negative Numbers?

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!

Stellungnahme:
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