投稿日 | : 2005/05/22(Sun) 02:12 |
投稿者 | : Starfish |
Eメール | : |
URL | : |
タイトル | : Re^7: VBのバグです |
> > > 四捨五入 ではなく丸めだと思うのですが(VB6.0 or .NET )
> > 丸める方法が、四捨五入で丸めるか、切捨てで丸めるかの違いです。
>
> Intは切捨て処理ですが、CIntは四捨五入ではありませんよ。
>
> Debug.Print CInt(1.5) '→ 2
> Debug.Print CInt(2.5) '→ 2
> Debug.Print CInt(3.5) '→ 4
> Debug.Print CInt(4.5) '→ 4
>
> これはどうみても、四捨五入ではありませんよね。
正確には、算術的な四捨五入ではなく、マイクロソフトの言う銀行型丸めというやつです。
.5のときは一方的に切り上げるのではなく偶数になるように切り上げまたは切捨てを行います。
hhttp://support.microsoft.com/default.aspx?scid=kb;ja;196652
>
> > VB6.0 開発環境 1回目 282 2回目以降 281
> 面白い結果になっていますね。
> こちらでも検証してみたいので、MSVBVM60.DLL のバージョンと、
> OleAut32.DLL のバージョンを教えていただけますでしょうか。
うちの環境が腐ってますかねぇ
MSVBVM60.DLL 6.0.97.82
OleAut32.DLL 5.1.2600.2180