[JavaScript] 数字を3桁カンマ区切りにする、2つの方法
こんにちは、@yoheiMuneです。
数値を3桁カンマ区切りにしたいという要件を、JavaScriptでどのように実現するのかについて、ブログに書きたいと思います。
[JavaScript] 本日、明日、昨日、月末、月初などを取得する
[JavaScript] 例外発生時にJavaみたいにスタックトレースを出力してデバッグしやすくする方法
[JavaScript] 英数字を全角から半角に変換するコードが、7行で実装できる
[フロントエンド] IE11の場合に、bodyタグに「ie11」というCSSクラスを付与するJavaScript実装
[Web] JavaScriptは使わずツールチップを表示する
最後になりますが本ブログでは、Python、フロントエンド、インフラ、サーバー、PHP、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!
数値を3桁カンマ区切りにしたいという要件を、JavaScriptでどのように実現するのかについて、ブログに書きたいと思います。
目次
解決したいこと
「数字は3桁カンマ区切りで表示したいんだよね〜」と言われた時に、サクッと対応できる方法をお伝えしたいと思います。方法1:toLocaleString()を利用
実装方法
もっとも簡単に対応するなら、toLocaleString()
関数を使うと便利です。数値型の変数に利用できます。var num = 12345; num.toLocaleString(); // "12,345"
toLocaleString()
はロケール(=言語、国、地域、などを表現する、例:ja)に合わせた数値表現を行うためのメソッドです。ロケールによって表示が異なりますが、日本語や英語の場合には3桁カンマ区切りとなります。ブラウザサポート状況
最新ブラウザに加えIE11やEdgeも対応しています。Tip1:String型の数字を3桁カンマ区切りにする
'12345'
と文字型の場合には、Numberに直してからtoLocaleString()
を実行することで、3桁カンマ区切りにできます。var numString = '12345'; Number(numString).toLocaleString(); // "12,345"
Tip2:小数点以下がある場合に、丸めさせない対応
toLocaleString()
は小数を含んだ数字でもカンマ区切りできますが、小数以下が途中で丸められる場合があります。var num = 12345.6789; num.toLocaleString(); // "12,345.679" <= 丸められた・・!丸めて欲しくない場合には、
maximumFractionDigits
オプションを使用します。var num = 12345.6789; num.toLocaleString( undefined, { maximumFractionDigits: 20 }); // "12,345.6789"オプションの詳細は「toLocaleString#Using_options」をご参照ください。
方法2:正規表現を使う
正規表現を使って、カンマ区切りにすることもできます。toLocaleString()
ではうまくいかない場合に、試してみると良いと思います。// 3桁カンマ区切りとする. function comma(num) { return String(num).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); } comma(12345); // "12,345"ただ、上記の処理では小数点以下を上手く扱えないので、小数点以下を含む場合には、下記のように少し変更します。
// 3桁カンマ区切りとする(小数点も考慮). function comma(num) { var s = String(num).split('.'); var ret = String(s[0]).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); if (s.length > 1) { ret += '.' + s[1]; } return ret; } comma(12345.6789); // "12,345.6789"
合わせて読みたい
アプリ開発やLP制作でJavaScriptを使う際に、下記記事も参考になるかもしれません。もし良ければご覧ください。[JavaScript] 本日、明日、昨日、月末、月初などを取得する
[JavaScript] 例外発生時にJavaみたいにスタックトレースを出力してデバッグしやすくする方法
[JavaScript] 英数字を全角から半角に変換するコードが、7行で実装できる
[フロントエンド] IE11の場合に、bodyタグに「ie11」というCSSクラスを付与するJavaScript実装
[Web] JavaScriptは使わずツールチップを表示する
最後に
JavaScriptでの実装は、今回のようなTipsがいっぱいあります。それらを沢山知っていればコードを書くスピードも上がります。ドシドシと貯めて、ブログにアップしていけたらと思います。今後もぜひご参考ください。最後になりますが本ブログでは、Python、フロントエンド、インフラ、サーバー、PHP、Swift、Node.js、Java、Linux、機械学習、などの技術トピックを発信をしていきます。「プログラミングで困ったその時の、解決の糸口に!」そんな目標でブログを書き続けています。ぜひ、本ブログのRSSやTwitterをフォローして貰えたら嬉しいです ^ ^
最後までご覧頂きましてありがとうございました!