Intl.NumberFormat
Das Intl.NumberFormat
Objekt ist ein Konstruktor für Objekte, die sprachabhängige Zahlenformatierungen nutzen.
Syntax
new Intl.NumberFormat([locales[, options]])
Intl.NumberFormat.call(this[, locales[, options]])
Parameter
locales
- Optional. Ein String mit einem BCP 47 Sprachcode, oder ein Array mit solchen Strings. Für die generelle Form und Interpretation des
locales
Arguments siehe im Intl Artikel. Die folgenden Unicode Erweiterungsschlüssel sind erlaubt: -
nu
- Das einzusetzende Nummerierungssystem. Mögliche Wert sind:
"arab"
,"arabext"
,"bali"
,"beng"
,"deva"
,"fullwide"
,"gujr"
,"guru"
,"hanidec"
,"khmr"
,"knda"
,"laoo"
,"latn"
,"limb"
,"mlym"
,"mong"
,"mymr"
,"orya"
,"tamldec"
,"telu"
,"thai"
,"tibt"
.
options
-
Optional. Ein Objekt mit einigen oder allen der folgenden Eigenschaften:
localeMatcher
- Der Spracherkennungsalgorithmus. Mögliche Werte sind
"lookup"
und"best fit"
. Der Standardwert ist"best fit"
. Für mehr Informationen siehe in den Intl Artikel. style
- Der einzusetzende Formatierungsstil. Mögliche Werte sind
"decimal"
für einfache Zahlenformate,"currency"
für Währungen,"percent"
für Prozentzahlen. Der Standardwert ist"decimal"
. currency
- Die bei der Währungsformatierung einzusetzende Währung. Mögliche Werte sind die ISO 4217 Währungscodes wie zum Beispiel
"USD"
für US Dollar,"EUR"
für Euro und"CNY"
für Chinesischen RMB (siehe Current currency & funds code list). Es gibt keinen Standardwert. Wennstyle
auf"currency"
gesetzt ist, muss diecurrency
Eigenschaft gesetzt werden. currencyDisplay
- Währungsanzeige im String. Mögliche Werte sind
"symbol"
für lokalisierte Währungssymbole wie zum Beispiel €,"code"
für ISO Währungscodes,"name"
für den Namen der Währung wie zum Beispiel"dollar"
. Der Standardwert ist"symbol"
. useGrouping
- Gruppierung der Zahl. Wird für das Ein- und Ausschalten der Tausendertrenner oder thousand/lakh/crore-Trenner eingesetzt. Mögliche Werte sind
true
undfalse
. Der Standardwert isttrue
.
Die folgenden Eingeschaften fallen in zwei Gruppen:
minimumIntegerDigits
,minimumFractionDigits
, undmaximumFractionDigits
in einer Gruppe,minimumSignificantDigits
undmaximumSignificantDigits
in der anderen. Wenn nur eine Eigenschaft der zweiten Gruppe genutzt wird, wird die erste Gruppe ignoriert.minimumIntegerDigits
- Die minimale Anzahl von Ganzzahl Ziffern. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist 1.
minimumFractionDigits
- Die minimale Anzahl von Nachkommastellen. Mögliche Werte sind zwischen 0 und 20. Der Standardwert für Zahlen und Prozentzahlen ist 0. Der Standard für Währungen ist die Anzahl der Stellen für die Untereinheit der Währung, die eingesetzt wird (ISO 4217 currency code list) oder 2, wenn die Währung nicht unterstützt wird.
maximumFractionDigits
- Die Maximale Anzahl von Nachkommastellen. Mögliche Werte sind zwischen 0 und 20. Der Standardwert für einfache Zahlen ist die größere Zahl von
minimumFractionDigits
und3
. Der Standardwert für Währungen ist der größere vonminimumFractionDigits
und der Anzahl der Stellen für die Untereinheit der Währung oder 2 wenn die Währung nicht unterstützt wird. Der Standardwert für Prozentzahlen ist die größere Zahl vonminimumFractionDigits
und0
. minimumSignificantDigits
- Die minimale Anzahl von signifikanten Stellen. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist 1.
maximumSignificantDigits
- Die maximale Anzahl von signifikanten Stellen. Mögliche Werte sind zwischen 1 und 21. Der Standardwert ist
minimumSignificantDigits
.
Beschreibung
Eigenschaften
Intl.NumberFormat.prototype
- Erlaubt das Hinzufügen von Eigenschaften zu allen Objekten.
Methoden
Intl.NumberFormat.supportedLocalesOf()
- Gibt ein Array zurück, welches alle Sprachen enthält, die unterstützt werden, ohne auf den Laufzeitstandard zurückzufallen (ohne fallback).
NumberFormat
Instanzen
Eigenschaften
NumberFormat
Instanzen erben die folgenden Eigenschaften von ihrem Prototyp:
Intl.NumberFormat.prototype.constructor
- Eine Referenz zu
Intl.NumberFormat
. Intl.NumberFormat.prototype.format
- Getter; gibt eine Funktion zurück, die eine Zahl nach den Sprach- und Formatierungsoptionen dieses
NumberFormat
Objektes formatiert.
Methoden
NumberFormat
Instanzen erben die folgenden Methoden von ihrem Prototyp:
Intl.NumberFormat.prototype.formatToParts()
(en-US)- Gibt ein
Array
mit Objekten zurück, welche die Repräsentation des Zahlenstrings in Teilen enthalten, die für sprachsicheres Formatieren genutzt werden können. Intl.NumberFormat.prototype.resolvedOptions()
(en-US)- Gibt ein neues Objekt mit eigenschaften zurück, die Sprach- und Formatierungsoptionen enthält, die bei der Initialisierung des Objektes errechnet wurden.
Beispiele
Standardeinsatz
Beim Einsatz ohne spezifizierte Sprache wird ein formatierter String in der Standardsprache und mit Standardoptionen zurückgegeben:
var number = 3500;
console.log(new Intl.NumberFormat().format(number));
// → '3.500' wenn in Deutscher Sprache
Einsatz von locales
Diese Beispiel zeigt einige der Variationen lokalisierter Zahlenformate. Um das Format der Sprache zu erhalten, welches in der Anwendung benutzt wird, spezifiziere die Sprache (und mögliche Rückfallsprachen (fallback)) mit dem locales
Argument.
var number = 123456.789;
// Englische Benutzer sehen ein Punkt anstatt eines Kommas als Dezimaltrenner
console.log(new Intl.NumberFormat('en-GB').format(number));
// → 123.456,789
// Arabisch ist in den meisten arabisch sprachigen Ländern eingesetzt
console.log(new Intl.NumberFormat('ar-EG').format(number));
// → ١٢٣٤٥٦٫٧٨٩
// Indien benutzt Tausendertrennzeichen bei Tausend und allen weiteren zwei Stellen
console.log(new Intl.NumberFormat('en-IN').format(number));
// → 1,23,456.789
// Chinesisches Zahlensystem
console.log(new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec').format(number));
// → 一二三,四五六.七八九
// Wenn eine Sprache übergeben werden soll, die vielleicht nicht
// unterstützt wird (Balinesisch), nutze eine fallback Sprache (Indonesisch)
console.log(new Intl.NumberFormat(['ban', 'id']).format(number));
// → 123.456,789
Einsatz von options
Das Ergebnis von toLocaleString
kann durch das options
Argument angepasst werden.
var number = 123456.789;
// Währungsformat
console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));
// → 123.456,79 €
// Der Japanische Yen hat keine Unterwährung (z. B. Cent)
console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));
// → ¥123,457
// Limitiert auf drei signifikante Stellen
console.log(new Intl.NumberFormat('en-IN', { maximumSignificantDigits: 3 }).format(number));
// → 1,23,000
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript Internationalization API 1.0 (ECMA-402) Die Definition von 'Intl.NumberFormat' in dieser Spezifikation. |
Standard | Initiale Definition. |
ECMAScript Internationalization API 2.0 (ECMA-402) Die Definition von 'Intl.NumberFormat' in dieser Spezifikation. |
Standard | |
ECMAScript Internationalization API (ECMA-402) Die Definition von 'Intl.NumberFormat' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser
Siehe auch
- Einführung: The ECMAScript Internationalization API
- Konstruktoren
- Methoden