数値フォーマッター
変換Intl.NumberFormat で数値を書式設定 — 桁区切り、科学表記、精度、通貨を任意のロケールで。
このページの内容
数値フォーマッターとは?#
同じ数でも、場所によって書き方が違います。US 英語の 1234567.89 は、ドイツでは 1.234.567,89(ピリオドとカンマの役割が入れ替わる)、ヒンディー語では 12,34,567.89(3 桁ではなく 2 桁のラック単位で区切る)、コンパクト表記の英語では 1.23M に縮みます。これらはどれも「間違い」ではなく、それぞれの地域の正しい慣習であり、レシート、ダッシュボード、人が読むあらゆる数値でこれを正しく扱うことが重要です。
本ページは、ブラウザのネイティブ Intl.NumberFormat(本番アプリが使うのと同じエンジン)のライブフロントエンドです。生の数値を与え、スタイル(単なる 10 進数、通貨、パーセント)、表記(標準、科学、工学、コンパクト)、ロケール、小数桁の上下限、桁区切りの切り替えを選ぶと、正しくローカライズされた文字列を瞬時に描画します。手書きの区切り文字テーブルが陳腐化することはありません。
使い方#
- 値を入力します(初期値は
1234567.89)。普通の 10 進数も1.23e5のような科学表記も受け付けます。1,000のような区切り付き入力は意図的に拒否され、曖昧なテキストが暗黙に再整形されることはありません。 - スタイルを選びます。10 進数(普通の数値)、通貨(通貨ピッカーを表示 — USD、EUR、GBP、JPY、CNY、INR など、すべて ISO 4217 コード)、パーセント(100 倍してロケールのパーセント記号を付けます)。
- 表記を選びます。標準、科学(
1.23E6)、工学(指数が常に 3 の倍数)、コンパクト(1.23M、1.23亿)。 - 代表的なリスト(en-US、zh-CN、de-DE、hi-IN、ja-JP …)からロケールを選びます。変更した瞬間に出力が再描画されます。
- 最小桁数/最大桁数(0〜20)と、桁区切りチェックボックス(3 桁区切りのオン/オフ)を調整します。出力欄がリアルタイムで更新され、コピーで取得できます。
主な機能#
- ブラウザネイティブの
Intl。 ランタイムが内蔵するのと同じIntl.NumberFormatを使うため、出力は実際のローカライズアプリが生成するものと一致します。サードパーティのフォーマットライブラリも、陳腐化したルックアップテーブルもありません。 - ロケールに正しい区切り。 西欧式の 3 桁区切り(
1,234,567)、インドのラック区切り(12,34,567)、中国式の 4 桁区切り(123,4567風)、ドイツ式のピリオド/カンマ入れ替えを、ロケールを選ぶだけで自動的に処理します。 - コンパクト表記と工学表記。 コンパクトは大きな値を
1.23M/1.23B(CJK ロケールでは123万/12亿)に縮めます。工学は指数を 3 の倍数に保つため、SI 接頭辞ときれいに揃います。 - 通貨とパーセントを内蔵。 通貨は任意の ISO 4217 コードを受け付け、そのロケールが期待する位置(数字の前か後ろ)に記号/ラベルを置きます。パーセントはロケール自身のパーセント記号と間隔を適用します。
- 小数桁の制御。 最小/最大の小数桁(0〜20)を固定して末尾のゼロを強制したり、ノイズの多い小数を上限で切ったりできます。
Intl.NumberFormatが公開するのと同じノブです。
実例#
デフォルトの 1234567.89、スタイル 10 進数、表記 標準、桁区切りオンで、ロケールだけを切り替えて区切り文字の変化を見ます。
en-US: 1,234,567.89
de-DE: 1.234.567,89
hi-IN: 12,34,567.89
ドイツの行は US の行と . と , が入れ替わります。ヒンディーの行は末尾 6 桁を 12,34,567 と区切ります。1 ラックは 10 万なので、インドの慣習では右から 3-3-3 ではなく 2-2-3 で区切ります。どちらもそのロケールでは正しく、手書きのフォーマッターはたいていどちらかを間違えます。
次に表記をコンパクトに切り替えると、同じ値が縮みます。
en-US: 1.23M
zh-CN: 123.46万
ja-JP: 123万
英語は SI 風の M(100 万)を使い、中国語と日本語はネイティブの 万(1 万)単位を使います。そのため 1,234,567 は「1.23 Millionen」ではなく「123.46 万」になります。同じ値が、文化的に期待される 4 つの異なる表現になるのです。
よくある質問#
1,000 のような区切り付き入力が拒否されるのはなぜですか?#
カンマが曖昧だからです。en-US では 3 桁区切りですが、de-DE では小数点です。これを受け入れると、入力のロケールを暗黙に推測することになります。本ツールは代わりに生の数値を取り、出力時に選んだロケールの区切りを適用します。両方向で曖昧さがありません。
コンパクトモードで英語は 1.23M なのに中国語は 123.46万 なのはなぜですか?#
コンパクト表記が各ロケール自身の位取り語を使うからです。英語は千・百万・十億(1000 の累乗)で数えます。中国語と日本語は万(1 万)や亿(1 億)で数え、これらは 10000 の累乗です。元の数は同一で、慣習的な区切り単位だけが異なります。
科学表記ではなく工学表記を使うのはどんなときですか?#
どちらも数を仮数×10 の累乗で表しますが、工学は指数を 3 の倍数に強制します(1.234567 × 10⁶.something ではなく 1.234567 × 10⁶)。これが SI 接頭辞(kilo、mega、giga…)に直接対応します。出力が物理単位の隣に置かれる場合は工学を選び、単にコンパクトな正規化形式が欲しい場合は科学を選びます。
通貨オプションは為替レートを換算しますか?#
いいえ。通貨モードは書式設定のみを行います。1234.56 をロケールの記号配置に従って $1,234.56(en-US)や 1.234,56 €(de-DE)として書き出しますが、USD を EUR に換算しません。為替レートは分単位で変動し、本ページは意図的にライブデータフィードを持たないためです。