☘️

AccessのRound関数は銀行型丸め

2023/12/29に公開

問題はどこにあるか

  • Access2000以降のRound関数は、通常の四捨五入ではなく銀行型丸め関数である。
  • それ以前のAccessにはRound関数はない。
  • ExcelのRound関数は、通常の四捨五入である。

Access VBAで書く、通常の四捨五入関数

	Function myRound(x As Double, k As Long) As Double
	  Dim work As Double
	  If x >= 0 Then
	    work = x * 10 ^ k + 0.5
	  Else
	    work = x * 10 ^ k - 0.5
	  End If
	  myRound = Int(work) / 10 ^ k
	End Function

Discussion