Nach Angaben von Google-Rechner (-13) % 64
es 51
.
Laut Javascript (siehe dies JSBin ) es ist -13
.
Wie kann ich das beheben?
Nach Angaben von Google-Rechner (-13) % 64
es 51
.
Laut Javascript (siehe dies JSBin ) es ist -13
.
Wie kann ich das beheben?
Auch wenn es sich nicht so verhält, wie Sie es erwartet haben, heißt das nicht, dass JavaScript sich nicht "verhält". Es ist eine Entscheidung, die JavaScript für seine Modulo-Berechnung getroffen hat. Denn per Definition ist jede Antwort sinnvoll.
Véase este aus Wikipedia. Auf der rechten Seite sehen Sie, wie die verschiedenen Sprachen das Zeichen des Ergebnisses gewählt haben.
Dies ist kein Fehler, es gibt 3 Funktionen, um Modulo zu berechnen, Sie können diejenige verwenden, die Ihren Bedürfnissen entspricht (ich würde empfehlen, die Euklidische Funktion zu verwenden)
console.log( 41 % 7 ); // 6
console.log( -41 % 7 ); // -6
console.log( -41 % -7 ); // -6
console.log( 41 % -7 ); // 6
Number.prototype.mod = function(n) {
return ((this%n)+n)%n;
};
console.log( parseInt( 41).mod( 7) ); // 6
console.log( parseInt(-41).mod( 7) ); // 1
console.log( parseInt(-41).mod(-7) ); // -6
console.log( parseInt( 41).mod(-7) ); // -1
Number.prototype.mod = function(n) {
var m = ((this%n)+n)%n;
return m < 0 ? m + Math.abs(n) : m;
};
console.log( parseInt( 41).mod( 7) ); // 6
console.log( parseInt(-41).mod( 7) ); // 1
console.log( parseInt(-41).mod(-7) ); // 1
console.log( parseInt( 41).mod(-7) ); // 6
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.