• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascriptで数値を3桁区切りで表示)

JavaScriptで数値の3桁区切り表示方法

このQ&Aのポイント
  • JavaScriptで数値の3桁区切り表示方法を教えてください。
  • 質問者は数値を取得して消費税計算をし、四捨五入して、最後に3桁区切りのカンマを付けて表示したいと考えています。
  • 質問者はカンマの付け方が分からず困っています。助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.3

> エラーが出てしまう price_d を文字列にしましょう。 var price_d = Math.round(price_c).toString(); または var price_d = "" + Math.round(price_c); > 「var ○○○」がずらっと並んでいる そもそも計算途中の変数に "price_" は余分だと思いますので削除するとすっきりします var a = $(this).text(); var b = parseInt( a.replace(/,/g, "") ); // 安全のために parseInt は必要でしょう var c = b * tax; var d = Math.round(c).toString(); さらに変数定義はカンマ区切りで列挙できますので var a = $(this).text(), b = parseInt( a.replace(/,/g, "") ), c = b * tax, d = Math.round(c).toString(); そもそも計算途中の変数など不要だと思うなら var d = $(this).text(); d = parseInt( a.replace(/,/g, "") ); d *= tax; d = Math.round(d).toString(); 伝統芸である One-liner/一行野郎 の作法に従うなら 参考) http://en.wikipedia.org/wiki/One-liner_program var d = Math.round(parseInt($(this).text().replace(/,/g, "")) * tax).toString(); ですが結局はずらずら書くのが、一番安全で間違いのない記述ではないでしょうか。

Java-Java
質問者

お礼

ありがとうございました。 色々な記述方法があるんですね…、非常に参考になりました!

その他の回答 (3)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.4

>もう少し簡略化して記述する方法はないでしょうか ある程度意味的にまとめてください それから途中のあまり重要でない変数の名前は思いつかなければ numやstrなど適当でもいいと思います var input = $(this).text(); //読み込み var num = +input.replace(/,/g, ""); //テキスト文字を数値に直す var price = Math.floor(num * tax); //税込み価格を出す var output = price.toLocaleString() //3桁区切りにする $(this).text(output); //書き込み もしくは正規化やパースの部分、入力出力の部分はもっとまとめてもいいと思います var zeinuki = +$(this).text().replace(/,/g, ""); //税抜き価格を取得 var zeikomi = Math.floor(zeinuki * tax); //税込みにする $(this).text(zeikomi.toLocaleString()); //税込み価格を出力

Java-Java
質問者

お礼

ありがとうございました。 意味的にまとめるといいのですね、参考になりました!

  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

文字列にして正規表現よる置換が一番確実でしょう "1234567890".replace(/(\d)(?=(\d{3})+$)/g, "$1,")

Java-Java
質問者

補足

ありがとうございます。 下記にしてやるとエラーが出てしまうのですが、どうしたらいいでしょうか。 ご教授下さい。 var price_e = price_d.replace(/(\d)(?=(\d{3})+$)/g, "$1,")

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

モダンブラウザであればNumber.prototype.toLocaleStringでできます n = 12345 n.toLocaleString() // "12,345"

Java-Java
質問者

お礼

ありがとうございます。うまくいきました。 もう一つ質問があるのですが、現在「var ○○○」がずらっと並んでいるのですが、これをもう少し簡略化して記述する方法はないでしょうか。 よろしくお願いします。

関連するQ&A