Math.floor() / Math.trunc
Das Ergebnis der Division ist eine Gleitkommazahl, Math.floor() und Math.trunc() geben einen Integer zurück – z.B. 49 : 28 = 1.75 und Math.floor(1.75) = 1.
Die Math.floor sag also, wie oft der zweite Operand in den ersten Operand passt, der Modulo-Operator gibt den Rest zurück.
const x = 28; const y = 49; const quotient = Math.floor(y/x); // 1 const rest = y % x; // 21
Anstelle von Math.floor kann Math.trunc(y/x) genutzt werden.
const num = 77 % 12; // gibt 5 zurück const neg = -37 % 5; // gibt -2 zurück
Modulo Negativ, Positiv
Wenn der Dividend unendlich ist oder der Divisor 0 ist, ist das Ergebnis immer NaN.
Modulo Beispiele
Der Modulo-Operator kommt zum Einsatz, wenn getestet wird, ob eine Zahl gerade oder ungerade ist, ob ein Wert durch einen anderen Wert teilbar ist, beim zyklischen Inkrement / Dekrement (hoch- bzw. runterzählen) innerhalb eines Intervals.
So wird der %-Operator z.B. in einer Animation oder Simulation benutzt, wenn ein Winkel immer zwischen 0 und 360 Grad liegen muss.
Die Restwertfunktion rechnet Dezimalzahlen in Binär-, Hexadezimal- oder Oktalzahlen um (http://www.fachinformatikerwissen.de/pages/wis_grun_modu.shtml).
if (11 % 2 === 0) { console.log ("gerade") } else { console.log ("ungerade") }
Wiederkehrende Events behandeln
requestAnimationFrame ist eine JavaScript-Methode für das Steuern von Animationen, die aber – anders als setTimeout und setInterval – nicht direkt getaktet werden kann. Aber requestAnimationFrame bietet eine bessere Performance und Synchronisation mit dem Bildschirm-Rendering.
const interval = 5000; // Intervall in Millisekunden (2 Sekunden) function repeatedEvent(currentTime) { // 16ms ist ungefähr die Zeit für einen Frame bei 60fps if (Math.floor(currentTime) % interval < 16) { triggerEvent(); } requestAnimationFrame(repeatedEvent); } function triggerEvent() { const jetzt = new Date(); … Ausgabe … } requestAnimationFrame(repeatedEvent);
repeatedEvent verwendet Math.floor, um aktuelle Zeit auf ganze Sekunden zu reduzieren, und modulo, um auf 5 Sekunden zu takten.
Mit Modulo prüfen, ob eine Zahl eine Primzahl ist
Der Modulo-Operator wird häufig in Algorithmen zur Primzahlprüfung verwendet, um festzustellen, ob eine Zahl durch eine andere teilbar ist.
Modulo bei floats – Gleitkommazahlen
Anders als in den meisten Programmiersprachen funktioniert der %-Operator auch bei floating point numbers, also mit Gleitkommazahlen.
const rem = 7.5 % 2; // gibt 1.5 zurück console.log (rem)