NumberFormatter: Bereichsbezogen, global

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 3 Minuten Lesedauer
  • Die NumberFormatter- API enthält Methoden, die entsprechend der Sprache des aktuellen Anwenders formatierte Zahlen zurückgeben.

    Diese API ist in bereichsbezogenen und globalen Apps verfügbar und wird im Namespace sn_i18n ausgeführt.

    Bei der Formatierung nach Sprache oder Gebietsschema können Anwender die Zahlen wie erwartet anzeigen. Wenn das Gebietsschema beispielsweise „fr“ (Französisch) ist, wird mit dem Wert 100,00 der Wert 100,00 zurückgegeben.

    NumberFormatter: Format (Nummer)

    Gibt eine Zeichenfolgendarstellung einer Zahl zurück, die gemäß der Spracheinstellung des aktuellen Anwenders formatiert ist.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Nummer Nummer Anzahl in beliebiger Größe.
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Zahl formatiert gemäß der Spracheinstellung des aktuellen Anwenders.

    Das folgende Beispiel zeigt die Rückgabeergebnisse für einen Anwender, dessen Sprache auf Spanisch festgelegt ist.

    gs.info("Number is: " + sn_i18n.NumberFormatter.format(123456.789));
    gs.info("Number is: " + sn_i18n.NumberFormatter.format(-123456.789));

    Ausgabe:

    Number is: 123.456,789
    Number is: -123.456,789

    NumberFormatter – formatLang(Nummer, Zeichenfolgensprache)

    Gibt eine Zeichenfolgendarstellung einer Zahl zurück, die entsprechend der als Parameter übergebenen Sprache formatiert ist.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    Nummer Nummer Anzahl in beliebiger Größe.
    language Zeichenfolge Sprach-Tag gemäß IETF BCP-47.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Zahl formatiert entsprechend der als Parameter übergebenen Sprache.

    Das folgende Beispiel zeigt die Ausgabe für die Spracheinstellung Deutsch.

    gs.info("Number is: " + sn_i18n.NumberFormatter.formatLang(123456.789, "de-de"));
    gs.info("Number is: " + sn_i18n.NumberFormatter.formatLang(-123456.789, "de-de"));

    Ausgabe:

    Number is: 123.456,789
    Number is: -123.456,789

    NumberFormatter - parseWithLocale(Zeichenfolgennummer, Zeichenfolgensprache, Zeichenfolgenland)

    Analysiert eine Zahl aus einer übergebenen Textzeichenfolge und durchläuft sie von links nach rechts, um den numerischen Wert zu extrahieren. Anschließend werden die übergebenen Länder- und Sprachcodes verwendet, um das Gebietsschema der Nummer zu identifizieren, und die analysierte Nummer wird in diesem Format zurückgegeben.

    Diese Methode analysiert die Zeichenfolge, bis sie ein Zeichen erreicht, das nicht als numerischer Wert oder Währungstrennzeichen erkannt wird.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Nummer Zeichenfolge Zu analysierende Zeichenfolge. Diese Zeichenfolge kann numerische Werte und Währungstrennzeichen wie Kommas und Dezimalstellen enthalten. Beispiel: „24.506,55“ oder „45.677,89“.
    language Zeichenfolge Zweistelliger ISO-639-Sprachcode.
    country Zeichenfolge Zweistelliger ISO-3166-Ländercode.
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Nummer Analysierte Zahl im Format des angegebenen Gebietsschemas.

    Löst eine Ausnahme aus, wenn das erste Zeichen der Zeichenfolge nicht analysiert werden kann.

    Beispiel:
    • "123.34": Analysiert in 123,34, solange das Dezimaltrennzeichen des Gebietsschemas ein Punkt ist.
    • "1,234.56": Analysiert bis 1234.56, sofern das Trennzeichen für die Gebietsschemagruppierung ein Komma und das Dezimaltrennzeichen ein Punkt ist.
    • „1.234.567,89“: Wenn das Gruppierungstrennzeichen etwas anderes als ein Punkt ist, wird als 1 analysiert.
    • „123x456“: Analysiert bis 123.
    • „text123“: Bewirkt, dass die Methode eine ParseException auslöst.

    Im folgenden Codebeispiel wird das Analysieren von Zeichenfolgen für verschiedene Gebietsschemata sowie das Analysieren einer Zeichenfolge mit unerwarteten Trennzeichen demonstriert. Im letzten Beispiel wird die Zeichenfolge nur teilweise analysiert, da ein Leerzeichen kein gültiges Trennzeichen ist.

    var x = sn_i18n.NumberFormatter.parseWithLocale("48,837.77", "en", "US");
    var y =  sn_i18n.NumberFormatter.parseWithLocale("77.931,22", "de", "DE");
    var z = sn_i18n.NumberFormatter.parseWithLocale("562 339,89", "fr", "FR");
    var specialCase = sn_i18n.NumberFormatter.parseWithLocale("400 797,67", "en", "US");
    
    gs.info(x);
    gs.info(y);
    gs.info(z);
    gs.info(specialCase);

    Ausgabe:

    48837.77
    77931.22
    562339.89
    400

    NumberFormatter - parseWithSeparators(String number, String groupingSeparator, String decimalSeparator)

    Analysiert eine Zahl aus einer übergebenen Textzeichenfolge und gibt sie von links nach rechts zurück, bis ein Zeichen gefunden wird, das nicht analysiert werden kann. Analysierbare Werte umfassen Zahlen sowie die angegebenen Gruppierungen und Dezimaltrennzeichen.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Nummer Zeichenfolge Zu analysierende Zeichenfolge. Diese Zeichenfolge kann numerische Werte und die angegebenen Trennzeichen wie Kommas und Dezimalstellen enthalten. Beispiel: „24.506,55“ oder „45.677,89“.
    groupingTrennzeichen Zeichenfolge Zeichen, das das Gruppierungstrennzeichen (auch als Tausendertrennzeichen bezeichnet) innerhalb der übergebenen Zeichenfolge angibt.

    Beispiel: Komma ",", Punkt „.“ oder Leerzeichen „ “.

    Dezimaltrennzeichen Zeichenfolge Zeichen, das das Dezimaltrennzeichen innerhalb der übergebenen Zeichenfolge angibt.

    Beispiel: Komma ",", Punkt „.“ oder Leerzeichen „ “.

    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    Nummer Analysierte Zahl.

    Löst eine Ausnahme aus, wenn das erste Zeichen der Zeichenfolge nicht analysiert werden kann.

    Beispiel:
    • "123.34": Analysiert in 123,34, solange das Dezimaltrennzeichen des Gebietsschemas ein Punkt ist.
    • "1,234.56": Analysiert bis 1234.56, sofern das Trennzeichen für die Gebietsschemagruppierung ein Komma und das Dezimaltrennzeichen ein Punkt ist.
    • „1.234.567,89“: Wenn das Gruppierungstrennzeichen etwas anderes als ein Punkt ist, wird als 1 analysiert.
    • „123x456“: Analysiert bis 123.
    • „text123“: Bewirkt, dass die Methode eine ParseException auslöst.

    Das folgende Codebeispiel zeigt, wie Zahlen anhand verschiedener Trennzeichen analysiert werden. Beachten Sie, dass im endgültigen Analysebeispiel nur die ersten drei Ziffern der Zahl analysiert werden, da ein Leerzeichen kein gültiges Trennzeichen ist.

    var x = sn_i18n.NumberFormatter.parseWithSeparators('48,837.77', ',', '.');
    var y =  sn_i18n.NumberFormatter.parseWithSeparators('77.931,22', '.', ',');
    var z = sn_i18n.NumberFormatter.parseWithSeparators('562 339,89', ' ', ',');
    var specialCase = sn_i18n.NumberFormatter.parseWithSeparators('400 797,67', '.', ',');
    
    gs.info(x);
    gs.info(y);
    gs.info(z);
    gs.info(specialCase);

    Ausgabe:

    48837.77
    77931.22
    562339.89
    400