- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:小数の足し算)
小数の足し算における誤差の原因とは
このQ&Aのポイント
- Javascriptを使用して小数の足し算を行った場合、一部の計算結果に誤差が生じることがあります。
- この誤差は、浮動小数点数の内部表現の限界や計算の丸め誤差などが原因とされています。
- 具体的には、0.1や0.05などの一部の小数を正確に表現することができず、計算結果にわずかな誤差が生じることがあります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Javascriptが内部処理に[浮動小数点]方式をを使っているからです。 [浮動小数点]は、近似値を答として出力するという特徴があります。 誤差が出るので、計算を繰り返すと、誤差は大きくなっていきます。 Javascriptが内部で、答えが 0.51 等と表示される場合でも、 内部処理を[浮動小数点]で行い「丸み」をつけている (小数点の表現を四捨五入のようにする)だけの場合が多いです。 誤差がなくなるわけではないので、 正確性を要する計算では、[固定小数点]をつかいます。 もっとも、自分で処理方法を考えなくてはならないので大変です。 2進数で小数を表現する場合[固定小数点](通常の小数)を使うと、 オーバーフローを起こしやすい(桁の小さい表現しかできない) という、決定的な欠点があります。 そのため、天文学の物理演算などの計算ができません。 なら、正確性よりも桁の多い計算ができたほうが… という理由で、 高等言語やスクリプトのほとんどが[固定小数点]をつかいます。 [浮動小数点]では、 テクニックによって誤差を少なくできる方法がいくつかありますので、 頑張ってみにつけてください。 参考[浮動小数点]↓ http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0
お礼
返事遅れました。すいません 少し難しいですがなんとなくわかりました ありがとうございます