作成者カテゴリ返答の対象
公開
松葉 優
11/29/2004 11:12 PM
文書リンクアイコン int関数について
Re: int関数について → ■訂正です。済みません

済みません。訂正します。
私の方が、理解出来ていませんでした。

小数値の計算は、内部の演算の仕組みにより
非常に小さな誤差が発生します。(おそらくシフト演算のため)
その誤差に対して、掛け算をすると、その誤差が大きくなり
手計算とは違った答えになる様です。

対応策は、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 )


間違った回答をしてしまいまして、済みません。


[Previous Main Document]
int関数について (hikaru)
. . Re: int関数について (松葉 優)
. . Re: int関数について → ■訂正です。済みません (松葉 優) * 現在地 *
. . . . ありがとうございました^^ (hikaru)
. . . . . . Re: ありがとうございました^^ (松葉 優)
[Next Main Document]