• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptの演算について)

JavaScriptの演算について

このQ&Aのポイント
  • JavaScriptを使用して電線の長さに応じて金額を計算するプログラムを作成していますが、計算結果が正しくない問題が発生しています。
  • 改善点を教えていただきたいです。また、IEとネスケでの動作も確認したいです。
  • プログラムの誤差の問題と思われますが、修正方法がわからない状況です。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

No.1のarukamunです。 >ただ、最初に10cmとか選んだときにmeterが空白だからとは思うんですが計算されずにNanとでてきます。 一番簡単な方法は <INPUT NAME="meter" SIZE="5" ONCHANGE="change(this.form, this)"> にVALUE="0"を追加する。 >テキストボックスに何も入力しなかったら0の初期値になるってできるのでしょうか?? VALUE=0を設定しない方法は nedanを計算する直前に if ( isNaN(meter) ) meter = 0 ; を入れれば大丈夫です。 ご確認ください。

yuichi777rf
質問者

お礼

ありがとうございます。 完璧に動作しました。 返事が遅くなってしまって申し訳ありません☆ これからもがんばってJavaScriptを勉強していきます☆

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

function change(form, val) { var meter = eval(form.meter.value) ; var centi = eval(form.centi.value) ; var nedan = meter * 40 + centi * 4 ; form.ans.value = nedan ; return false; } にchange関数を変更してみてはいかがでしょうか。 元の関数ではmeterまたはcentiが変更されても変更したmeterまたはcentiの変更した方の値がval.valueに入ってきますので、meter変数、centi変数に同じ値が入ってしまいます。 いかがでしょうか。

yuichi777rf
質問者

お礼

ありがとうございます!! 早速動作しました。 ただ、最初に10cmとか選んだときにmeterが空白だからとは思うんですが計算されずにNanとでてきます。 テキストボックスに何も入力しなかったら0の初期値になるってできるのでしょうか?? 質問ばっかりですみません・・

すると、全ての回答が全文表示されます。

関連するQ&A