Access。四捨五入のRound関数はExcelとAccessで大違いなので注意が必要です。
<Access:Round関数>
ExcelにあるROUND関数は、四捨五入でおなじみです。
Accessの関数にも、Round関数があって、四捨五入をする関数なのですが、Excelと違った結果になるので注意が必要です。
下記の表は、AccessでRound関数をつかった結果のクエリです。
小数第1フィールドには、次の演算フィールドを設定しています。
小数第1: Round([値],1)
引数の2つ目に「1」と設定することで、小数点第2位を四捨五入して小数点第1位を求めることができます。
ただ、結果がおかしいですよね。
1.44は、1.4。
これは問題ありませんが、1.45を四捨五入したら、1.5になるはずですが、1.4と算出されています。
1.54は、「1.5」と算出されていて、1.55は「1.6」と四捨五入された結果が表示されています。
AccessのRound関数は四捨五入を行うことは行うのですが、「銀行丸め」とかJIS式と呼ばれる四捨五入で算出されているために、お馴染みの四捨五入と結果が異なってしまうのです。
Excelの四捨五入のROUND関数は、算術における四捨五入なんですね。
整数フィールドには、
整数: Round([値])
という演算フィールドを設定してあります。
2つ目の引数を省略すると整数で四捨五入してくれます。
1の位フィールドには、
1の位: Round([値],-1)
という演算フィールドが設定してあります。
しかし、結果は、エラーが表示されています。
2つ目の引数を「-1」とすれば、Excelの場合、1の位を四捨五入してくれるのですが、AccessのRound関数は、小数点にしか対応してくれません。
つまり、整数の端数には対応していないというわけです。
そのため、AccessのRound関数をつかって四捨五入をすると、Excelと異なった値になる。
または、整数値では対応してくれないということが発生しますので、注意が必要です。