Start · Sprachen · JavaScript · Referenz · Math.PI

Math.PI

Eigenschaft

Die statische Konstante <code>Math.PI</code> enthält die Kreiszahl π – das Verhältnis von Kreisumfang zu Durchmesser, ungefähr <code>3.141592653589793</code>.

seit JavaScript ES1 (Baseline: alle Browser, Node.js) Kategorie: method-property

Signatur

Math.PI

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

Typ
number
Beschreibung
Die Kreiszahl π als Gleitkommazahl mit doppelter Genauigkeit: 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));
28.27 18.85

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));
0.5000 45

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);
}
true 3.141592653589793

// Wichtig · Fallstricke

  • Gleitkomma-Genauigkeit: Math.PI ist nur eine Näherung von π mit etwa 15–17 signifikanten Stellen. Deshalb liefert z. B. Math.sin(Math.PI) nicht exakt 0, sondern 1.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 ist Math.sin(90) statt Math.sin(Math.PI / 2).
  • Nicht veränderbar: Zuweisungen an Math.PI werden ignoriert bzw. werfen im Strict Mode einen TypeError.
  • 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.