数値を指定したロケールに応じた形式で文字列に変換する(toLocaleString)

Number オブジェクトのインスタンスメソッドである toLocaleString は、数値を指定したロケールとオプションに応じた形式で文字列に変換した値を取得することができます。国によって数値を三桁毎にカンマ(,)で区切るかドット(.)で区切るのかは違っていますが、このメソッドでロケールとして地域を指定すれば対象の数値をそのロケールに合わせて変換してくれます。ここでは Number オブジェクトの toLocaleString メソッドの使い方について解説します。

(Last modified: )

ロケールに応じた文字列に変換する(toLocaleString)

Number オブジェクトの toLocaleString メソッドは、指定したロケールにあわせて対象の数値を文字列に変換した値を返します。書式は次のとおりです。

数値.toLocaleString([ロケール [, オプション]])

数値を引数に指定したロケールに合わせた形に変換したあと、そのあとで文字列に変換した値を返します。引数を省略した場合はデフォルトロケールが指定されたものとして扱われます。(なお 2 番目の引数であるオプションについては詳細が分かりませんでした)。

次のサンプルをみてください。

let num = 8242.56;

console.log(num.toLocaleString());
>> 8,242.56
console.log(num.toLocaleString('ja-JP'));
>> 8,242.56
console.log(num.toLocaleString('de-DE'));
>> 8.242,56
console.log(num.toLocaleString('ru-RU'));
>> 8?242,56

指定したロケールに応じて数値の表現方法が異なっています。日本(日本語)では桁の区切りにカンマ、小数点にピリオドですが、ドイツ(ドイツ語)では逆となります。またロシア(ロシア語)では桁の区切りが空白となります。(国別ではなく国と言語で異なるようです)。

なお整数のように小数点が含まれない数値に対して直接 toLocaleString メソッドを実行する場合は、数値を括弧で囲うか数値のあとに空白を追加してください。

console.log(1000.toLocaleString('ja-JP'));
>> Uncaught SyntaxError: Invalid or unexpected token

console.log((1000).toLocaleString('ja-JP')); // 数値を括弧で囲う
>> 1,000

console.log(1000 .toLocaleString('ja-JP')); // 数値のあとに空白を入れる
>> 1,000

-- --

Number オブジェクトの toLocaleString メソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。