Start · Sprachen · JavaScript · Referenz · Math.LN2

Math.LN2

Eigenschaft

Die statische Eigenschaft <code>Math.LN2</code> enthält den natürlichen Logarithmus von 2, also ungefähr <code>0.6931471805599453</code>.

seit JavaScript ES1 (Baseline: alle Browser) Kategorie: method-property

Signatur

Math.LN2

Beschreibung

Math.LN2 ist eine mathematische Konstante mit dem Wert von ln(2) ≈ 0.6931471805599453. Weil LN2 eine statische Eigenschaft von Math ist, schreibt man immer Math.LN2. Math ist kein Konstruktor, man kann also keine Instanz davon anlegen.

Die Konstante braucht man vor allem, um Logarithmen zur Basis 2 umzurechnen. Es gilt log₂(x) = ln(x) / ln(2) und 2x = ex · ln(2). Typische Einsatzfälle sind Halbwertszeiten, exponentielles Wachstum und Zerfall, Verdopplungszeiten sowie Rechnungen in der Informationstheorie (Bits, Entropie).

Die Eigenschaft hat die Attribute nicht schreibbar, nicht aufzählbar und nicht konfigurierbar. Ihr Wert lässt sich also nicht ändern.

Rückgabewert

Typ
number
Beschreibung
Den natürlichen Logarithmus von 2 als Gleitkommazahl mit doppelter Genauigkeit: 0.6931471805599453.

Beispiele

Wert der Konstante ausgeben

console.log(Math.LN2);
console.log(Math.LN2 === Math.log(2));
0.6931471805599453 true

Halbwertszeit aus der Zerfallskonstante berechnen

// Zerfallskonstante λ in 1/Jahr (Kohlenstoff-14)
const lambda = 1.21e-4;
const halbwertszeit = Math.LN2 / lambda;
console.log(`${Math.round(halbwertszeit)} Jahre`);
5728 Jahre

Verdopplungszeit bei stetiger Verzinsung

const verdopplungszeit = (zinssatz) => Math.LN2 / zinssatz;

console.log(verdopplungszeit(0.05).toFixed(2)); // 5 % p. a.
console.log(verdopplungszeit(0.07).toFixed(2)); // 7 % p. a.
13.86 9.90

Logarithmus zur Basis 2 (Fallback für alte Umgebungen)

const log2 = (x) => Math.log(x) / Math.LN2;

console.log(log2(8));
console.log(Math.log2(8));
// Benötigte Bits für 1000 verschiedene Werte
console.log(Math.ceil(log2(1000)));
2.9999999999999996 3 10

// Wichtig · Fallstricke

  • Rundungsfehler: Math.log(x) / Math.LN2 ist nicht immer exakt. So ergibt Math.log(8) / Math.LN2 den Wert 2.9999999999999996 statt 3. Seit ES2015 sollte man deshalb Math.log2() verwenden, das bei Zweierpotenzen genaue Ergebnisse liefert.
  • Schreibgeschützt: Eine Zuweisung wie Math.LN2 = 1 wird im nicht-strikten Modus stillschweigend ignoriert. Im Strict Mode löst sie einen TypeError aus.
  • Nicht verwechseln mit Math.LOG2E. Diese Konstante ist der Kehrwert, also log₂(e) = 1 / ln(2) ≈ 1.4427.
  • Wird von allen Browsern und von Node.js unterstützt.