• ベストアンサー

ACCESSのRound関数について

お世話になっております。 ACCESSのクエリでRound関数を使い、小数点以下を四捨五入した値を表示させようと思いましたが、なぜか 1876.5→1876 と表示されてしまいます。 同じ列のほかのセルはちゃんと四捨五入した値が表示され、5389.5 も 5390 のように表示されます。 どなたか思い当たる方原因を教えていただけますでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

Accessのバージョンが書かれてませんが、 Access97以前のROUND関数は銀行型の四捨五入を行います。 Access2000のROUND関数にはバグがあります 詳細は下記を参照 http://support.microsoft.com/kb/418216/ja http://support.microsoft.com/kb/225956/ja 四捨五入の計算方法のVBAが載ってるサポート情報 http://support.microsoft.com/kb/416839/ja http://support.microsoft.com/kb/196652/ja

yuichi8
質問者

お礼

mshr1962さんありがとうございます。 ACCESSバージョンは2002なのですが、ACCESSの場合Round関数が銀行型になっているため、教えていただいたサイトから算術型のユーザ型関数をモジュールで作成して計算することにしました。 ※算術型のRound関数 Public Function Round(X As Currency, s As Integer) As Currency Dim t As Integer 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

関連するQ&A