Javascriptで
<SCRIPT language="JavaScript"><!--
function wa()
{
a = eval( document.myFORM.a.value );
b = eval( document.myFORM.b.value );
s = a + b;
document.myFORM.kotae.value="答え " + s;
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM name="myFORM">
A =<INPUT type="text" name="a" size="3">B =<INPUT type="text" name="b" size="3"><BR>
<INPUT type="text" name="kotae"><INPUT type="button" value="=" onclick="wa()">
</FORM>
</BODY>
としたとき
A=0.1 B=0.05とすると
答え 0.15000000000000002となるのはなぜですか?
No.1ベストアンサー
- 回答日時:
Javascriptが内部処理に[浮動小数点]方式をを使っているからです。
[浮動小数点]は、近似値を答として出力するという特徴があります。
誤差が出るので、計算を繰り返すと、誤差は大きくなっていきます。
Javascriptが内部で、答えが 0.51 等と表示される場合でも、
内部処理を[浮動小数点]で行い「丸み」をつけている
(小数点の表現を四捨五入のようにする)だけの場合が多いです。
誤差がなくなるわけではないので、
正確性を要する計算では、[固定小数点]をつかいます。
もっとも、自分で処理方法を考えなくてはならないので大変です。
2進数で小数を表現する場合[固定小数点](通常の小数)を使うと、
オーバーフローを起こしやすい(桁の小さい表現しかできない)
という、決定的な欠点があります。
そのため、天文学の物理演算などの計算ができません。
なら、正確性よりも桁の多い計算ができたほうが…
という理由で、
高等言語やスクリプトのほとんどが[固定小数点]をつかいます。
[浮動小数点]では、
テクニックによって誤差を少なくできる方法がいくつかありますので、
頑張ってみにつけてください。
参考[浮動小数点]↓
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95% …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptでhiddenに二次元配...
-
value内に変数を入れたい
-
VB.NET DateTimeの型について
-
複数のcookieでの保存
-
ラジオボタンと連動して文字列...
-
name属性が同じフォームが複数...
-
hiddenのvalueの値を変えたい
-
テキストボックスに入力された...
-
setIntervalの間隔を途中で変更...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
formのfileの値をhiddenでも持...
-
javascriptでクイズ
-
【UWSC】HTML内のある部分を抽...
-
javascriptでセレクトボックス...
-
特定<table>内の<td>の色を変える
-
追加ボタンを押した際に ok ボ...
-
innerHTML内では改行は禁止?
-
submitした値を返したい
-
ファイル選択ダイアログが表示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
switchを使って四則演算のプロ...
-
VB.NET DateTimeの型について
-
クイズ作成:15個の問題から5個...
-
C言語クイックソートの比較総回...
-
セレクトボックスの初期選択状...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
ラジオボタンと連動して文字列...
-
setIntervalの間隔を途中で変更...
-
JAVASCRIPTで、ボタンを押した...
-
sessionStorageを調べています。
-
クリックの度に加算していくには?
-
マクロ オブジェクト変数With...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
おすすめ情報