タグ

TIPSとmathに関するwogawaraのブックマーク (1)

  • JavaScriptにおける、丸め誤差の掛け算テスト

    JavaScriptにおける、丸め誤差の掛け算テスト 単価: 数量: ※計算ボタンを押してみてください。 どんな結果が出てくるでしょうか? 結果: 四捨五入: ※とてもカンタンな計算なのに、こんなになってしまいます(; ;)。 【原因】 計算機における丸め誤差が原因です。 通常の数値計算ルーチンは数値はすべて2進数扱いにするが、 2進数では10進数の小数を表現しきれないためにこういう現象がおこる。 2進数の桁は2の累乗扱いになるわけだが、小数だと、2の-1乗(つまり1/2)、 2の-2乗(1/4)という単位になる。 したがって、2のマイナス何乗かの数値の合成でうまく表現できない。 数値は無限小数になって、最後の桁を切り捨てした部分の誤差ができてしまう。 補正後 ※いったん1000倍してから積を求め、積を1000で割った後四捨五入

  • 1