NumberFormatter - スコープ対象、グローバル

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • NumberFormatter API には、現在のユーザーの言語に従って書式設定された数値を返すメソッドが含まれています。

    この API は、スコープ対象アプリとグローバルアプリで使用でき、 sn_i18n 名前空間で実行されます。

    言語またはロケール別に書式設定すると、ユーザーは期待どおりに数値を表示できます。たとえば、ロケールが fr (フランス語) の場合、値 100.00 は 100,00 を返します。

    NumberFormatter – format(数値)

    現在のユーザーの言語設定に従って書式設定された数値の文字列表現を返します。

    表 : 1. パラメーター
    名前 タイプ 説明
    番号 番号 任意のサイズの番号。
    表 : 2. 返される内容
    タイプ 説明
    文字列 現在のユーザーの言語設定に従って書式設定された数値。

    次の例は、言語がスペイン語に設定されたユーザーの戻り値を示しています。

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

    出力:

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

    NumberFormatter – formatLang(数値, 数値, 文字列 language)

    パラメーターとして渡された言語に従って書式設定された数値の文字列表現を返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    番号 番号 任意のサイズの番号。
    language 文字列 IETF BCP-47 に準拠した言語タグ。
    表 : 4. 返される内容
    タイプ 説明
    文字列 パラメーターとして渡された言語に従って書式設定された数値。

    次の例は、ドイツ語設定の出力を示しています。

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

    出力:

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

    NumberFormatter - parseWithLocale(文字列 number, 文字列 language, 文字列 country)

    渡されたテキスト文字列の数値を左から右に解析して、数値を抽出します。次に、渡された国コードと言語コードを使用して番号のロケールを識別し、解析された番号をその形式で返します。

    このメソッドは、数値または通貨区切り記号として認識されない文字に達するまで文字列を解析します。

    表 : 5. パラメーター
    名前 タイプ 説明
    number 文字列 解析する文字列です。この文字列には、数値と、カンマや小数点などの通貨区切り文字を含めることができます。例:「 24,506.55」 または 「45.677,89」
    language 文字列 2 文字の ISO-639 言語コード。
    country 文字列 2 文字の ISO-3166 国コード。
    表 : 6. 返される内容
    タイプ 説明
    番号 指定されたロケールの形式で解析された数値。

    文字列の最初の文字を解析できない場合は、例外をスローします。

    例:
    • "123.34": ロケールの小数点記号がピリオドである限り、123.34 に解析されます。
    • "1,234.56": ロケール グループの区切り記号がコンマで、小数点記号がピリオドである限り、1234.56 に解析されます。
    • "1.234.567,89": グループ化区切り記号がピリオド以外の場合は、1 に解析されます。
    • "123x456": 123 に解析されます。
    • "text123": メソッドが ParseException をスローします。

    次のコード例は、さまざまなロケールの文字列の解析と、予期しない区切り記号を使用した文字列の解析を示しています。最後の例では、スペースは有効な区切り文字ではないため、文字列は部分的にしか解析されません。

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

    出力:

    48837.77
    77931.22
    562339.89
    400

    NumberFormatter - parseWithSeparators(文字列 number, 文字列 groupingSeparator, 文字列 decimalSeparator)

    渡されたテキスト文字列から数値を解析して返し、解析できない文字が見つかるまで左から右にトラバースします。解析可能な値には、数値、指定されたグループ化と小数点が含まれます。

    表 : 7. パラメーター
    名前 タイプ 説明
    number 文字列 解析する文字列です。この文字列には、数値と、カンマや小数点などの指定された区切り文字を含めることができます。例:「 24,506.55」 または 「45.677,89」
    groupingセパレーター 文字列 渡された文字列内のグループ化セパレーター (3 桁区切りとも呼ばれます) を示す文字。

    例:カンマ「,」、ピリオド「.」、スペース「」。

    decimalSeparator 文字列 渡された文字列内の小数点を示す文字。

    例:カンマ「,」、ピリオド「.」、スペース「」。

    表 : 8. 返される内容
    タイプ 説明
    番号 解析された数値。

    文字列の最初の文字を解析できない場合は、例外をスローします。

    例:
    • "123.34": ロケールの小数点記号がピリオドである限り、123.34 に解析されます。
    • "1,234.56": ロケール グループの区切り記号がコンマで、小数点記号がピリオドである限り、1234.56 に解析されます。
    • "1.234.567,89": グループ化区切り記号がピリオド以外の場合は、1 に解析されます。
    • "123x456": 123 に解析されます。
    • "text123": メソッドが ParseException をスローします。

    次のコード例は、さまざまな区切り記号を使用して数値を解析する方法を示しています。最後の解析例では、スペースは有効な区切り文字ではないため、数値の最初の 3 桁のみが解析されることに注意してください。

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

    出力:

    48837.77
    77931.22
    562339.89
    400