JavaScriptを使った自動計算

[新着] Webテンプレートを仮オープンしました



0   名前: こころ : 2006/02/28 16:01
はじめまして。
様々なサイトや掲示板を参考にHTMLを作ってみたのですが、分からない事があり
皆様のお力をお借り致したいと思い質問させて頂きます。

原価1 1.23
原価2 2.36
原価合計 3.59 ←(原価1と原価2の合計)

原価合計を原価1と原価2に入力されると自動で計算したのですが、原価合計には3と
表示され小数点から後ろが計算されません。
どうしたら計算されるのでしょうか?

      :
:
<TITLE>原価計算</TITLE>
<script type="text/javascript">
<!--
function calc2() {
genka_total = 0;
kou = new Array();
kou[0] = parseInt(document.forms[0].genka1.value);
kou[1] = parseInt(document.forms[0].genka2.value);
for (i = 0; i < 2; i++ ) {
if (!isNaN(kou[i])) genka_total += kou[i];
}
document.forms[0].genka_total.value = genka_total;
}
//-->
</SCRIPT>
:
:

<TD>
原価1: <INPUT TYPE="TEXT" NAME="genka1" SIZE="25" VALUE=""onblur="calc2()">
原価2: <INPUT TYPE="TEXT" NAME="genka2" SIZE="25" VALUE=""onblur="calc2()">
原価合計: <INPUT TYPE="TEXT" NAME="genka_total" SIZE="25" >
</TD>
</TR>

1   名前: かわうそ : 2006/02/28 16:01
parseIntは小数点以下を切り捨てます。
parseFloatかNumberを使えばOKです。

http://www.tohoho-web.com/js/builtin.htm#toNumber

2   名前: こころ : 2006/02/28 16:01
かわうそさん、有難うございました。
parseFloatで無事小数点以下を表示する事ができました。
更に質問なのですが、小数点2位以下とか3位以下を四捨五入をする事とかは
可能でしょうか?
もし可能ならば方法を教えて頂けますでしょうか?
よろしくお願いします。

3   名前: やほほ : 2006/02/28 16:01
こんなんでどうでしょう。

答え = Math.round( (data * 10) ) / 10;

dataにはparseFloatで小数点表示することが出来たデータ、
10は小数点第1を示しています。
小数点第2で四捨五入したい場合は100とすればOKです。

4   名前: こころ : 2006/02/28 16:01
やほほさんお返事が遅くなってすみません。
教えて頂いた方法で表示することが出来ました。
まだまだ初心者なのでまた質問等があると思いますので、今後ともよろしくお願いします。

一覧へ戻る