float の悪夢。。。

float の割り算などをする処理で、
まったく同じ入力を与えているにもかかわらず、DEBUGモードとRELEASEモードで結果が違う。。。
違いはごくわずかですが、違うんです。

DEBUGでは、 0.009999999776482582100...
RELEASEでは、0.010000000474974513000...

0.0000000006 の違いながら、その後の処理に影響しちゃうんですよ。。。

どうなってんだい!プロセッサのバグなのかな。。。

でも、同じ計算を再現性の確認のために作った別のプログラムで動かすと、問題なく、まともな結果を示すんだよね。
環境は、Pentium4 世代の Xeon 3.06GHz。
不思議だ。。。

その後の処理では、この値で数値を割り、結果を整数として利用する予定なので、あまり細かい数値は問題ないのですが、ずばりの境界がDEBUGとRELEASEでずれてしまうので、かなり困ったことになります。

とりあえず、途中結果に 0.001 を足してつじつまを合わせて ^^;

くそー、本当に不可解だ。。。
[PR]
by isoq | 2007-09-27 18:30 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇
<< float の悪夢。。。 2 PDFCreator 日本語化まとめ >>