ナンバー・フォーマッター

数値をカンマ、略語、通貨記号、カスタム小数でフォーマットします。

仕組み

  1. 数値を入力: 数値, 整数、小数、大きな数値、または科学的表記, を入力または貼り付けます。
  2. フォーマットオプションを選択: ロケール(US、EUなど)、小数桁数、グループ区切り文字、必要に応じて通貨記号を選択します。
  3. フォーマットされた結果をコピー: 数値が選択した形式で瞬時に表示されます。レポート、ドキュメント、エクスポートで使用するためにコピーします。

なぜ数値フォーマッターを使うのか?

数値はロケールによって異なる意味を持ちます。米国は1000を1,000.00と書き、多くのヨーロッパ諸国は1.000,00と書きます。システム間で生の数値をコピーすると、解析エラー、誤読、財務エラーが発生します。数値フォーマッターは、財務レポートの準備、コンテンツのローカライゼーション、プレゼンテーション用のデータクリーンアップなど、あらゆるオーディエンスに対して数値が正しく表示されることを保証します。

機能

よくある質問

米国とヨーロッパの数値形式の違いは?

米国では、小数区切り文字はピリオド(.)で、千の区切り文字はカンマ(,)です, 例: 1,234.56。ヨーロッパのほとんどでは、その逆です: 1.234,56。このツールは2つの形式間を正しく変換します。

通貨用に数値をフォーマットできますか?

はい。通貨モードを有効にして、フォーマットされた数値の前に追加する記号($ € £ ¥など)を選択します。負の数の慣例を持つ会計形式の場合は、会計モードを有効にします。

非常に大きいまたは非常に小さい数値を処理しますか?

はい。フォーマッターは複数桁の数値を処理し、標準、グループ化、または科学的表記でそれらを表示できます。浮動小数点精度は構成された小数に適用されます。

数値フォーマット標準の出どころ

今日ソフトウェアで見かける数値フォーマットは、30年かけて落ち着いた小さな標準のスタックによって定義されています。IEEE 754(1985年)は2008年と2019年に改訂され、バイナリ浮動小数点数のビットレイアウトを固定しました:64ビットを1符号、11指数、52仮数に分割、これがすべてのJavaScript数値の内部表現です。ISO 4217(1978年、現行版2015年)は3文字通貨コード、USD、EUR、JPY、INR、BRLと、それぞれの補助単位の数(USDは2、JPYは0、KWDは3、CLFは4)を定義しました。Unicode CLDR(Common Locale Data Repository)は2003年に初公開され、全ロケールのグループ区切り、小数点区切り、通貨記号、複数形ルールを記録するオープンデータセットです;現在のリリースはCLDR 46(2024年10月)。ECMA-402(2012年)、ECMAScript国際化APIは、JavaScriptにIntl.NumberFormatを通じてそのデータへのネイティブバインディングを与え、V8、JavaScriptCore、SpiderMonkeyのICU(International Components for Unicode)に支えられています。これら4つのスペックが組み合わさって(1234567).toLocaleString('de-DE')1,234,567ではなく1.234.567を返すようになっています。

出会う6つのロケールパターン

野生のほとんどの数値フォーマットは6パターンに収まります。この6つを覚えれば、グローバル製品のユーザーベースの約95%をカバーできます。

丸めモード、実際に何をするか

ECMA-402(2023年)はIntl.NumberFormatに9つの丸めモードを追加しました。選択は財務合計、科学レポート、税金計算を変えます。実際には3つが最も重要です。

このツールが本領を発揮する場面

経験豊富な開発者でも陥るミス

その他のよくある質問

なぜ0.1 + 0.2は0.3にならないのか?

IEEE 754バイナリ浮動小数点が10進小数0.1を正確に保存できないからです、ちょうど10進数が1/3を正確に保存できないように。0.1に最も近い64ビットdoubleはおよそ0.1000000000000000055511151231257827021181583404541015625です。2つのそのような近似を加算すると、0.3ではなく0.30000000000000004に丸まる結果が出ます。すべてのIEEE 754言語にこの動作があります:Java、Python、C++、Swift、すべて。正確な10進演算には、整数セントまたはdecimal.js / PythonのDecimal / JavaのBigDecimalのようなライブラリを使用。

Intl.NumberFormatとtoLocaleStringの違いは?

同じエンジン、異なるエルゴノミクス。(1234.5).toLocaleString('de-DE', {style: 'currency', currency: 'EUR'})new Intl.NumberFormat('de-DE', {style: 'currency', currency: 'EUR'}).format(1234.5)は同じ出力を生成します。違い:Intl.NumberFormatは再利用可能なので、同じオプションで多くの数値をフォーマットするなら、一度インスタンス化してキャッシュ。toLocaleStringは呼び出しごとにコンストラクタオプションを読み、タイトループで劇的に遅い。

インドの数字システムはどう機能するか?

インド英語とヒンディー語は3-3-3ではなく2-2-3パターンで桁をグループ化します:最も右の3桁、その後2つのグループ。100,000は1,00,000と書かれ1 lakh(10⁵)と呼ばれます。10,000,000は1,00,00,000と書かれ1 crore(10⁷)と呼ばれます。Intl.NumberFormat('en-IN').format(12345678)1,23,45,678を返します。システムはarab(10⁹)とkharab(10¹¹)まで拡張しますが、現代の使用では稀です。

このツールはどれくらい大きな数値を扱えるか?

Number.MAX_SAFE_INTEGER = 2⁵³ − 1 = 9,007,199,254,740,991まで、任意の整数は正確にラウンドトリップを生き延びます。それを超えると、精度が漏れ始めます。JSON.parse("9007199254740993")9007199254740992を返します、最も近い表現可能なdouble。より大きな値には、BigIntリテラルとして貼り付ける(末尾にnを付けて)か、文字列として扱います。フォーマッタはどちらも受け入れます。

自分の数値はどこかに送信されるか?

いいえ。Intl.NumberFormatとロケールデータはブラウザに同梱されています;パイプライン全体がローカルで実行。DevToolsでNetworkタブを開いて数値をフォーマット、ゼロの送信リクエストが見えます。給与、収益、口座残高、またはホスト型サービスに貼り付けないデータに対して安全。

関連ツール

進数変換ツール パーセント計算ツール 無料関数電卓 複利計算ツール