Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Intl.NumberFormat

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.

Das Objekt Intl.NumberFormat ermöglicht die sprachabhängige Formatierung von Zahlen.

Probieren Sie es aus

const number = 123456.789;

console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// Expected output: "123.456,79 €"

// The Japanese yen doesn't use a minor unit
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// Expected output: "¥123,457"

// Limit to three significant digits
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// Expected output: "1,23,000"

Konstruktor

Intl.NumberFormat()

Erstellt ein neues NumberFormat-Objekt.

Statische Methoden

Intl.NumberFormat.supportedLocalesOf()

Gibt ein Array mit den bereitgestellten Locales zurück, die unterstützt werden, ohne auf das Standard-Locale der Laufzeitumgebung zurückgreifen zu müssen.

Instanzeigenschaften

Diese Eigenschaften sind auf Intl.NumberFormat.prototype definiert und werden von allen Intl.NumberFormat-Instanzen gemeinsam genutzt.

Intl.NumberFormat.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für Intl.NumberFormat-Instanzen ist der Anfangswert der Intl.NumberFormat-Konstruktor.

Intl.NumberFormat.prototype[Symbol.toStringTag]

Der Anfangswert der Eigenschaft [Symbol.toStringTag] ist die Zeichenfolge "Intl.NumberFormat". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Instanzmethoden

Intl.NumberFormat.prototype.format()

Getter-Funktion, die eine Zahl entsprechend dem Locale und den Formatierungsoptionen dieses Intl.NumberFormat-Objekts formatiert.

Intl.NumberFormat.prototype.formatRange()

Formatiert einen Zahlenbereich entsprechend dem Locale und den Formatierungsoptionen des Intl.NumberFormat-Objekts, für das die Methode aufgerufen wird.

Intl.NumberFormat.prototype.formatRangeToParts()

Gibt ein Array von Objekten zurück, die die Zeichenfolgen des Zahlenbereichs in einzelnen Bestandteilen darstellen und für eine benutzerdefinierte, Locale-abhängige Formatierung verwendet werden können.

Intl.NumberFormat.prototype.formatToParts()

Gibt ein Array von Objekten zurück, die die Zahlenzeichenfolge in einzelnen Bestandteilen darstellen und für eine benutzerdefinierte, Locale-abhängige Formatierung verwendet werden können.

Intl.NumberFormat.prototype.resolvedOptions()

Gibt ein neues Objekt mit Eigenschaften zurück, die das bei der Initialisierung des Objekts ermittelte Locale und die Formatierungsoptionen widerspiegeln.

Beispiele

Grundlegende Verwendung

Bei der grundlegenden Verwendung ohne Angabe eines Locale wird eine formatierte Zeichenfolge im Standard-Locale und mit den Standardoptionen zurückgegeben.

js
const number = 3500;

console.log(new Intl.NumberFormat().format(number));
// '3,500' if in US English locale

Locales verwenden

Dieses Beispiel zeigt einige Unterschiede zwischen lokalisierten Zahlenformaten. Um das Format der Sprache zu erhalten, die in der Benutzeroberfläche Ihrer Anwendung verwendet wird, geben Sie diese Sprache (und gegebenenfalls weitere Sprachen als Fallback) über das Argument locales an:

js
const number = 123456.789;

// German uses comma as decimal separator and period for thousands
console.log(new Intl.NumberFormat("de-DE").format(number));
// 123.456,789

// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(new Intl.NumberFormat("ar-EG").format(number));
// ١٢٣٤٥٦٫٧٨٩

// India uses thousands/lakh/crore separators
console.log(new Intl.NumberFormat("en-IN").format(number));
// 1,23,456.789

// the nu extension key requests a numbering system, e.g. Chinese decimal
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// 一二三,四五六.七八九

// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// 123.456,789

Optionen verwenden

Die Ergebnisse können mit dem Argument options angepasst werden:

js
const number = 123456.789;

// request a currency format
console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// 123.456,79 €

// the Japanese yen doesn't use a minor unit
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// ¥123,457

// limit to three significant digits
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// 1,23,000

// Formatting with units
console.log(
  new Intl.NumberFormat("pt-PT", {
    style: "unit",
    unit: "kilometer-per-hour",
  }).format(50),
);
// 50 km/h

console.log(
  (16).toLocaleString("en-GB", {
    style: "unit",
    unit: "liter",
    unitDisplay: "long",
  }),
);
// 16 litres

Eine vollständige Liste der Optionen finden Sie auf der Seite zum Intl.NumberFormat()-Konstruktor.

Spezifikationen

Spezifikation
ECMAScript® 2027 Internationalization API Specification
# numberformat-objects

Browser-Kompatibilität

Siehe auch