計算が・・・


CHE  2006-08-23 04:05:17  No: 132869

現在、統計プログラムを作成しているのですが、以下の場合に計算が合わなくなります。

dWork as double

d = 4.1-4

dに9.99999999999996E-02が・・・

なぜこのような現象が起こるのでしょうか?
わかる方がいらっしゃったら、ご助言お願いいたします。


丸め誤差です  2006-08-23 04:53:31  No: 132870

http://tinyurl.com/nsbd8
とりあえずググっておきました


ささ  2006-08-24 00:48:46  No: 132871

>わかる方がいらっしゃったら、ご助言お願いいたします。

浮動小数点の
余剰加算、余剰減算による演算誤差による結果の相違
VBに限らず他の言語でも起こり、
プログラミングを書く人ならば知っていなければはまる問題です。

当然お約束の回避方法があり、WEBで検索すれば見つけられます。


ヤマ@文系  2006-09-19 07:14:36  No: 132872

CPUだと10進数で割りきれるかずでも、
2進数で処理するので無理数になったりします・・
0.1を10回たしても1にならないとか。。
小数点を使わないように10^n(n>1)倍するとか、
VBならCurrency?型などセーフティーな型を使うなどが考えられると思います。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加