Accessには、四捨五入を行う関数がない。

Accessのクエリで四捨五入を行うには、Int関数、またはFix関数を利用する。

 

【Int関数とFix関数】

引数には共に「数値(number)」を指定する。

Int関数は、数値以下の最大の整数を返す。

Fix関数は、数値の小数部分を除去した値を返す。

数値が正数の場合はInt関数とFix関数の戻り値は同じだが、負数の場合は異なる。

 

【数値を四捨五入する】

数値に「0.5」を加算した値をInt関数、またはFix関数に渡す。

ただし、数値が負数の場合にFix関数に渡す値は「-0.5」を加算した値とする。

Int関数を利用した式とFix関数を利用した式は、[数値]が正数の場合は同じ結果になるが、負数の場合は結果が異なる。

Fix関数を利用した式が一般的な四捨五入になるが、負数を考慮する必要がない場合はInt関数を利用した式がシンプル。

<Int([数値] + 0.5)>
[数値]が「1.6」 ⇒ 「2」
[数値]が「1.5」 ⇒ 「2」
[数値]が「1.4」 ⇒ 「1」
[数値]が「-1.4」 ⇒ 「-1」 ←「-0.9」以下の最大の整数値
[数値]が「-1.5」 ⇒ 「-1」 ←「-1.0」以下の最大の整数値
[数値]が「-1.6」 ⇒ 「-2」 ←「-1.1」以下の最大の整数値

<Fix([数値] + 0.5 * Sgn([数値]))>
[数値]が「1.6」 ⇒ 「2」
[数値]が「1.5」 ⇒ 「2」
[数値]が「1.4」 ⇒ 「1」
[数値]が「-1.4」 ⇒ 「-1」 ←「-1.9」の小数部を除去した値
[数値]が「-1.5」 ⇒ 「-2」 ←「-2.0」の小数部を除去した値
[数値]が「-1.6」 ⇒ 「-2」 ←「-2.1」の小数部を除去した値

※Sgn関数は、引数の「数値(number)」が「0より大きい」場合に「1」、「0」の場合に「0」、「0より小さい」場合に「-1」を返す。

 

【四捨五入の桁を指定する】

四捨五入を小数点第2位や小数点第3位で行いたい場合は、小数点の位置をシフトして四捨五入をしてから、小数点の位置を戻す。

<小数点第2位を四捨五入する>
「1.44を1.4」、「1.45を1.5」というように小数点第2位を四捨五入する場合は、数値を10倍して四捨五入してから10で割る。

 

<小数点第3位を四捨五入する>
「1.244を1.24」、「1.245を1.25」というように小数点第3位を四捨五入する場合は、数値を100倍して四捨五入してから100で割る。

 

<10の位を四捨五入する>
「1240を1200」、「1250を1300」というように10の位を四捨五入する場合は、数値を100で割って四捨五入してから100倍する。