Microsoft Access 200X Round関数

なんとなく、今更なネタですが・・・。

MSがKBで公開しているRound関数をそのまま使って痛い目に遭いました。
検証不足ですね・・・。

MS版

T = 10 ^ Abs(S)

If S > 0 Then
Round = Int(X * T + 0.5) / T
Else
Round = Int(X / T + 0.5) * T
End If
End Function

これの引数として 0.404/8,3 とかを渡すと0.05になる。
Intが原因っぽい。(By インターネットのおぢちゃん)

訂正版

T = 10 ^ Abs(S)

If S > 0 Then
Round = CInt(X * T + 0.5) / T
Else
Round = CInt(X / T + 0.5) * T
End If
End Function

これでOK。

おぢちゃん、激ラブ。