タイトル : Re^3: IF文 複数条件判定のバグ 投稿日 : 2009/07/31(Fri) 13:12 投稿者 : よねKEN
> IF a = 0.0957 then > ではなく、 > IF a >=0.0957 AndAlso a < 0.0958 then > と誤差分を考慮して書かなくてはならないのでしょうか? そうですね。一般論としては浮動小数点の比較では、 If Math.Abs(a - 0.0957) < 0.0001 then のように誤差の範囲内かどうかで比較する必要があります。 提示されているコードには書かれていませんが、変数a〜dの値は If文の前に計算か何かして値を取得していると思いますので、 浮動小数点数を使う限りは、どうやっても誤差の入り込む余地はあります。 SingleやDoubleの代わりにDecimalを使うという手もありますけどね。 |