Heim > Web-Frontend > js-Tutorial > Warum erzeugt der Modulo-Operator von JavaScript unerwartete Ergebnisse mit negativen Zahlen?

Warum erzeugt der Modulo-Operator von JavaScript unerwartete Ergebnisse mit negativen Zahlen?

DDD
Freigeben: 2024-11-20 00:52:02
Original
1051 Leute haben es durchsucht

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

Unerwartete negative Ergebnisse im Modulo-Operator von JavaScript

Bei Verwendung des Modulo-Operators (%) in JavaScript für negative Zahlen kann es zu überraschenden Ergebnissen kommen . Beispielsweise entspricht (-13) % 64 in Google Calculator 51, während es in JavaScript -13 zurückgibt.

Das Problem verstehen

Der Modulo-Operator von JavaScript berechnet den Rest nach der Division, wendet aber nicht die gleiche Logik auf negative Zahlen an wie mathematische Operationen wie Google Calculator. In JavaScript gibt der Modulo-Operator einen Wert mit demselben Vorzeichen wie der erste Operand zurück.

Behebung des Problems

Um dieses Verhalten zu korrigieren und die Konsistenz mit mathematischen Operationen sicherzustellen, Sie können die folgende benutzerdefinierte Implementierung des Modulo verwenden Operator:

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

Verwendung

Sobald die benutzerdefinierte Modulo-Methode definiert ist, können Sie sie verwenden, um den Rest negativer Zahlen zu berechnen:

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

Dieses korrigierte Verhalten stimmt mit dem erwarteten mathematischen Ergebnis überein und gewährleistet ein konsistentes Verhalten auf verschiedenen Plattformen.

Das obige ist der detaillierte Inhalt vonWarum erzeugt der Modulo-Operator von JavaScript unerwartete Ergebnisse mit negativen Zahlen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage