済みません。訂正します。 私の方が、理解出来ていませんでした。 小数値の計算は、内部の演算の仕組みにより 非常に小さな誤差が発生します。(おそらくシフト演算のため) その誤差に対して、掛け算をすると、その誤差が大きくなり 手計算とは違った答えになる様です。 対応策は、Cdbl(Cstr( )) で囲むだけです。 したがって、以下のようにすると、 小さな誤差が無くなり正常に計算できます。 Dim tmp1 As Double Dim tmp2 As Double Dim tmp3 As Double tmp1 = Cdbl(Cstr( 9000 /10000)) tmp2 = Cdbl(Cstr( 1 - tmp1)) tmp3 = Cdbl(Cstr( tmp2 * 10000)) Msgbox( Int(tmp3) / 100 ) 間違った回答をしてしまいまして、済みません。