VBプログラマ質問スレ(6.0以前) Part50
■ このスレッドは過去ログ倉庫に格納されています
0279デフォルトの名無しさん
2006/11/19(日) 19:11:53ちゃんと勉強してからいいなはれ。
世間ではよく誤解されているようだが
浮動小数点数にはいつモヤモヤと誤差があるわけじゃない。
値によってはちゃんと誤差なく表現が出来る。
まず小数部の桁数(ビット数)が足りている限り整数は全く誤差なく表現できる。
また(1/2)^nは10進表現で言えば(1/10)^mに当たる特別な数字群で
2進数の浮動小数点表現でも桁がずれる(つまり指数部の数字が変わる)
だけなので整数と同じく全く誤差なく表現できる。
(指数部が桁あふれしない限りな。)
そしてこれらの数の間の加減算は桁あわせした際に桁数が足りている限り
完全に正確に行われる。
さらに乗除算の場合は指数部の桁数が足りている限り完全に正確に行われる。
つまり浮動小数点数も注意深く使えば全く誤差のない表現と演算が可能だ。
そしてこの性質と
一部のプロセッサでは専用ハードウェアによってlongを使う整数演算より
浮動小数点演算のほうが早いということを生かして大量の整数演算する際に
わざわざ浮動小数点演算を利用するという研究が実際にある。
■ このスレッドは過去ログ倉庫に格納されています