Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2013)
Round関数について
投稿日時: 20/03/07 09:03:16
投稿者: WRC

Round関数についてどなたかわかる方よろしくお願いします。
 
    D1 = 1.5
    For I = 5 To 105 Step 10
        D2 = I
        D3 = Round(D2 * D1, 0)
        Debug.Print D3
    Next
 
結果
 8
 22
 38
 52
 68
 82
 98
 112
 128
 142
 158
十の位が奇数のとき結果が違っています。
これは、バグなんでんしょうか?
よろしくお願いします。

回答
投稿日時: 20/03/07 09:29:51
投稿者: 半平太

 バグではありません。「銀行丸め」とも呼ばれる四捨五入法です。
 ※詳しくは、ネット検索してください。
 
ワークシート関数と同じ結果が必要であれば、
 
> D3 = Round(D2 * D1, 0)
     ↓
    D3 = Application.Round(D2 * D1, 0)

投稿日時: 20/03/07 10:08:10
投稿者: WRC

半平太 さんの引用:
バグではありません。「銀行丸め」とも呼ばれる四捨五入法です。
 ※詳しくは、ネット検索してください。
 
ワークシート関数と同じ結果が必要であれば、
 
> D3 = Round(D2 * D1, 0)
     ↓
    D3 = Application.Round(D2 * D1, 0)

 
半平太さん
ありがとうございました。
 
銀行丸めというのがあるのをはじめて知りました。