NumberFormatter - スコープ付き、グローバル
NumberFormatter API には、現在のユーザーの言語に従って書式設定された数値を返すメソッドが含まれています。
この API は、スコープ対象アプリとグローバルアプリで利用でき、 sn_i18n 名前空間で実行されます。
言語またはロケールで書式設定すると、ユーザーは想定どおりに数値を表示できます。たとえば、ロケールが fr (フランス語) の場合、100.00 として指定された値は 100,00 として返されます。
NumberFormatter – format(数値、数値)
現在のユーザーの言語設定に従って書式設定された数値の文字列表現を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 番号 | [Number (番号)] | 任意のサイズの数。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のユーザーの言語設定に従って書式設定された数値。 |
次の例は、言語がスペイン語に設定されているユーザーの戻り値を示しています。
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(数値、数値、文字列言語)
パラメーターとして渡された言語に従ってフォーマットされた数値の文字列表現を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 番号 | [Number (番号)] | 任意のサイズの数。 |
| language | 文字列 | IETF BCP-47に準拠した言語タグです。 |
| タイプ | 説明 |
|---|---|
| 文字列 | パラメーターとして渡された言語に従って書式設定された数値。 |
次の例は、ドイツ語設定の出力を示しています。
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 | 文字列 | 解析する文字列です。この文字列には、数値と通貨区切り記号 (カンマや小数点など) を含めることができます。例: 「24,506.55」 または 「45.677,89」。 |
| language | 文字列 | 2 文字の ISO-639 言語コード。 |
| 国 | 文字列 | 2 文字の ISO 3166 国コード。 |
| タイプ | 説明 |
|---|---|
| [Number (番号)] | 指定されたロケールの形式で解析された数値。 文字列の最初の文字を解析できない場合は、例外をスローします。 例:
|
次のコード例は、さまざまなロケールの文字列の解析と、予期しない区切り文字を含む文字列の解析を示しています。最後の例では、スペースが有効なセパレーターではないため、文字列を部分的にしか解析しません。
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(String number, String groupingSeparator, String decimalSeparator)
渡されたテキスト文字列から、解析できない文字が見つかるまで、左から右にトラバースしながら数値を解析して返します。解析可能な値には、数値と、指定されたグループ化および小数点が含まれます。
| 名前 | タイプ | 説明 |
|---|---|---|
| number | 文字列 | 解析する文字列です。この文字列には、数値と、指定された区切り文字 (カンマや小数点など) を含めることができます。例: 「24,506.55」 または 「45.677,89」。 |
| groupingSeparator | 文字列 | 渡された文字列内のグループ化セパレーター (桁ごとの区切り文字とも呼ばれます) を示す文字。 例:カンマ「,」、ピリオド「.」、またはスペース「」。 |
| decimalSeparator | 文字列 | 渡された文字列内の小数点を示す文字。 例:カンマ「,」、ピリオド「.」、またはスペース「」。 |
| タイプ | 説明 |
|---|---|
| [Number (番号)] | 解析された数値。 文字列の最初の文字を解析できない場合は、例外をスローします。 例:
|
次のコード例は、さまざまな区切り記号を使用して数値を解析する方法を示しています。最後の解析例では、スペースは有効な区切り文字ではないため、数値の最初の 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