next up previous
Next: Pascalの式と演算子(その1) Up: 無題 Previous: 無題

課題(6月27日締切分)について

(2e-10+2e+10)-2e+102e-10+(2e+10-2e+10)の二つの実数の計算でした。 数学的には、二つの計算結果は等しくなるはずですが、 計算結果は等しくならなかったはずです。

計算機内部では、

displaymath145

という表現方法が用いられています。gif nを仮数部とよび、mを指数部と呼びます。もちろん、それぞれは有限です。 従って、Pascalの実数のもつ精度も有限です。そのために 小さな実数2e-10と、それと比較して圧倒的に 大きな実数2e+10とを足し算してしまうと、 結局、2e+10になってしまいます。gif このような理由により、 2e-10+(2e+10-2e+10)が、2e-10になるのに対して、 (2e-10+2e+10)-2e+10は、0.0になってしまいます。

Pascalという言語に限らず、計算機の上での実数計算はどうしても誤差が入っ てきてしまいます。計算機上での実数計算をするときには誤差のことを常に気 にとめましょう。




Mon Jun 30 01:42:14 JST 1997