- 486 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 17:16:52 ]
- >>484
x86のFPUはfloatだろうとdoubleだろうと、内部では80bitで計算している。 そのために、floatの計算で本来なら丸め誤差が発生するはずのところで、 誤差が発生しないという問題が生じる。 厳密に規格で決められた通りの精度で計算するためには、1つの計算が 終わるたびに丸め操作が必要になる。 その辺のコントロールをするのが/fpオプションで、fastは速度優先で 最低限の丸め操作しかしないので計算の精度が必要以上に上がってしまう。 また、どのタイミングでメモリにストアされるかによっても、計算結果が 変わってしまうので、全く同じ入力を与えても常に同じ結果になることが 保証できない。
|

|