• 締切済み

小数点

いつも参考にさせて頂いています。 javascriptを勉強し始めたばかりの初心者です。 ある数に0.07を掛けて、 その結果に小数点が発生した場合は切り上げして表示、 発生しなかった場合はそのままで表示ということを 行いと思っているのですが上手くいきません・・・ 例えば、 100×0.01= 1 100×0.02= 2 100×0.03= 3 100×0.04= 4 100×0.05= 5 100×0.06= 6 100×0.08= 8 100×0.09= 9 となりOKですが 100×0.07の場合は7.000000000000001という結果が出るので それに対して切上げを行うと8となり正しい結果が得られません・・・ どうかお分かりの方がいましたら教えて下さい。 <html> <head> <script> function calc() { var xx = parseFloat(document.form1.area1.value); var yy = parseFloat(document.form1.area2.value); var c = xx * yy; document.form1.ans.value = c; } </head> <body> <form name="form1"> <input type="text"name="area1"> <input type="text"name="area2"> <input type="button"value="計算"onclick="calc()"> <input type="text"name="ans"> </form> </body> </html> どうぞ宜しくお願いします。

みんなの回答

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

精度の問題でしょうから、一度適当な桁数で切り捨てから再度切り上げするとよいのでは? <script language="JavaScript"> var num=100*0.07; num=Math.floor(num*Math.pow(10,5))/Math.pow(10,5); num=Math.ceil(num); alert(num); </script>

hhhloc
質問者

お礼

ご解答ありがとうございます。 希望通りの結果が得られました。 ありがとうございます。

関連するQ&A