• ベストアンサー

初めからカンマが付いている数を計算したいのですが。

以下のようにテーブル内の数、A,B,Cを足して、 Dに合計を出したいのですが カンマを付けて表示させる方法がありますでしょうか? <HTML> <script type="text/javascript"> <!-- function goukei() { add=Number(document.all.A.innerText.substring(0,7)) +Number(document.all.B.innerText.substring(0,7)) +Number(document.all.C.innerText.substring(0,7)); document.all.D.innerText=document.all.D.innerText + add; } // --> </script> <BODY onload="goukei()"> <TABLE border="1"> <TR><TH>A</TH><TH ID="A">1,001</TH></TR> <TR><TH>B</TH><TH ID="B">10,010</TH></TR> <TR><TH>C</TH><TH ID="C">100,100</TH></TR> <TR><TH>合計</TH><TH ID="D"><!-- 合計表示 --></TH></TR> </TABLE> </BODY> </HTML>

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

  • ベストアンサー
  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.2

こんばんは。 そう、#1さんのおっしゃる流れでよいと思います。…下のようなコードで、どうですか? 新しく追加した関数「 c_del 」「 c_add 」はそれぞれ、3ケタごとのカンマを除去/追加する機能を持っています。お試しあれ。 <HTML> <script type="text/javascript"> <!-- function goukei() { aa = Number(c_del(document.all("A").innerText)); bb = Number(c_del(document.all("B").innerText)); cc = Number(c_del(document.all("C").innerText)); add = String(aa + bb + cc); document.all("D").innerText = c_add(add); } function c_del(n) { newn = ''; nlen = n.length; for (i=0; i<nlen; i++) { if(n.substr(i,1) != ',') { newn = newn + n.substr(i,1); } } return newn; } function c_add(n) { newn = ''; nlen = n.length; amari = nlen - Math.floor(nlen / 3) * 3; for (i=0; i<nlen; i++) { if((i - Math.floor(i / 3) * 3) == amari && i != 0 ) { newn = newn + ','; } newn = newn + n.substr(i,1); } return newn; } // --> </script> <BODY onload="goukei()"> <TABLE border="1"> <TR><TH>A</TH><TH ID="A">11,001</TH></TR> <TR><TH>B</TH><TH ID="B">10,010</TH></TR> <TR><TH>C</TH><TH ID="C">100,100</TH></TR> <TR><TH>合計</TH><TH ID="D"><!-- 合計表示 --></TH></TR> </TABLE> </BODY> </HTML> なお、なにかご不明の点がございましたら、お気軽にどうぞ!

ljungberg
質問者

お礼

回答ありがとうございます。 おかげさまで解決できました! 新しく追加して頂いた関数についても説明があったので、 分かり易かったです!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

カンマをとってから足し算して、後からカンマをつけなおす というのが妥当では?

ljungberg
質問者

お礼

回答ありがとうございます。 まさにその通りで、 hkd9001さんのやり方で解決できました。

関連するQ&A