Signatur
Beschreibung
Math.PI ist eine statische Dateneigenschaft des eingebauten Math-Objekts und liefert die Kreiszahl π als number in doppelter Genauigkeit (IEEE 754), also 3.141592653589793. Weil Math kein Konstruktor ist, greift man immer direkt über Math.PI darauf zu – nie über eine Instanz.
Man braucht die Konstante überall dort, wo Kreise, Winkel oder periodische Vorgänge berechnet werden: Kreisfläche und -umfang, die Umrechnung zwischen Grad und Bogenmaß (die trigonometrischen Funktionen wie Math.sin() und Math.cos() erwarten Bogenmaß), Canvas-Zeichnungen mit arc(), Animationen mit Schwingungen oder geografische Abstandsberechnungen.
Die Eigenschaft ist schreibgeschützt (writable: false, enumerable: false, configurable: false). Eine Zuweisung wird im nicht-strikten Modus stillschweigend ignoriert und löst im Strict Mode einen TypeError aus.
Rückgabewert
3.141592653589793.Beispiele
Kreisfläche und Umfang berechnen
const kreisFlaeche = (radius) => Math.PI * radius ** 2;
const kreisUmfang = (radius) => 2 * Math.PI * radius;
console.log(kreisFlaeche(3).toFixed(2));
console.log(kreisUmfang(3).toFixed(2));
Grad in Bogenmaß umrechnen (und zurück)
const gradZuRad = (grad) => grad * (Math.PI / 180);
const radZuGrad = (rad) => rad * (180 / Math.PI);
console.log(Math.sin(gradZuRad(30)).toFixed(4));
console.log(radZuGrad(Math.PI / 4));
Kreis bzw. Tortenstück auf ein Canvas zeichnen
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
// Vollkreis: 0 bis 2π
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.stroke();
// Viertelkreis-Segment (90°)
ctx.beginPath();
ctx.moveTo(250, 100);
ctx.arc(250, 100, 50, 0, Math.PI / 2);
ctx.closePath();
ctx.fillStyle = 'tomato';
ctx.fill();
Schreibschutz im Strict Mode
'use strict';
try {
Math.PI = 3;
} catch (err) {
console.log(err instanceof TypeError, Math.PI);
}
// Wichtig · Fallstricke
- Gleitkomma-Genauigkeit:
Math.PIist nur eine Näherung von π mit etwa 15–17 signifikanten Stellen. Deshalb liefert z. B.Math.sin(Math.PI)nicht exakt0, sondern1.2246467991473532e-16. Ergebnisse vergleicht man daher mit einer Toleranz (z. B.Math.abs(a - b) < Number.EPSILON) oder rundet sie für die Anzeige. - Bogenmaß statt Grad: Alle trigonometrischen
Math-Funktionen arbeiten im Bogenmaß. Ein häufiger Fehler istMath.sin(90)stattMath.sin(Math.PI / 2). - Nicht veränderbar: Zuweisungen an
Math.PIwerden ignoriert bzw. werfen im Strict Mode einenTypeError. - Für τ (2π) gibt es keine eigene Konstante – verwenden Sie
2 * Math.PI. - Kompatibilität: seit der ersten ECMAScript-Version in allen Browsern und in Node.js verfügbar.