Access

Accessで小数第2位を四捨五入する方法

Access端数処理
記事内に商品プロモーションを含む場合があります

Accessで小数点以下の端数処理をする方法はいくつかあります。

切り上げ、切り捨て、四捨五入がありますが今回は用途に応じてそれぞれの方法をご紹介します。

数学関数を使って小数点以下の端数処理をする方法

Accessで端数処理に使える関数には、Fix関数、Int関数、round関数があります。

ただし、round関数は一見四捨五入に見えて私たちが通常考える四捨五入ではないのでAccessでは使わないようにしましょう。(詳しい説明は割愛しますので、とにかく使えないと思ってください。)

という訳で、使える関数はFix関数とInt関数の二択です。

VBAにはInt関数と似た関数でCInt 関数があります。

Cint関数はInt関数とは異なり小数部分を丸めますので混同しなように注意が必要です。

CInt関数は小数部分が 0.5 の場合は、常に最も近い偶数に値を丸めます。たとえば、0.5 を 0 に、1.5 を 2 に、それぞれ丸めます。

Fix関数とInt関数の使い方

Fix関数もInt関数も、引数は数値のみで戻り値は小数点以下を切り捨てた値です。

両方とも端数を切り捨てる関数ですが、両関数は負の数の「.5」をどのように処理するかが異なります

ということは、正の数の端数処理をする場合はどちらの関数を使っても同じ値が戻るということです。

具体的に負の数の「0.5」の扱いがどのように違うか見てみましょう。

Accessのクエリーに各関数を指定しました。

Accessのクエリ端数処理

端数処理の結果は以下の通りです。

端数処理結果

●Fix(-1.5) ⇒ -1

●Int(-1.5) ⇒ -2

Access小数点端数処理Int関数は数値以下の最大の整数を返しますので、-1.5は-2になります。

Fix関数は数値の小数部分を単純に取り除いた値を返しますので-1.5は-1になります。

Int関数とFix関数を使って四捨五入する方法

Int関数とFix関数はとにかく端数を切り捨てる処理なので、四捨五入したい場合一工夫が必要です。

基本的には四捨五入したい数値に0.5を加算して切り捨てます

負の数の話をするとややこしくなるので、正の数で方法を確認します。

 

例ではFix関数を使っていますが、正の数なのでInt関数でも同じ結果になります。

正の数しか処理しない場合はこれで終わりです。

小数第〇位までで四捨五入したい場合は、一旦数値に第〇位の桁数をかけて小数点の位置をずらし端数処理した後で再度、第〇位の桁数で除算します。

負の数の四捨五入

負の数が発生する場合の四捨五入では、少し注意が必要です。

Int関数を利用する場合は、正数でも負数でも0.5を加算してから処理します。

(正数)1.7 → 1.7 + 0.5 = 2.2 → Int(2.2)=2

(負数)-1.7 → -1.7 + 0.5 = -1.2 → Int(-1.2)=-2

Fix関数を利用する場合は、正数の場合は0.5を加算、負数の場合は-0.5を加算してから処理します。

(正数)1.7 → 1.7 + 0.5 = 2.2 → Fix(2.2)=2

(負数)-1.7 → -1.7 – 0.5 = -2.2 → Fix(-2.2) = -2

文字列関数を使用して四捨五入する方法

Accessのformat関数(文字列整形関数)を使用して四捨五入する方法もあります。

format関数の引数は、第一引数【値】と、フォーマットです。

この場合値は文字列として戻りますので数値で戻す必要がある場合は数字に変換する必要があります。

たまに使うと「どっちだったかな?」と迷う関数です。

注意しながら使いましょう。

\逆引き辞書があると便利です/
[itemlink post_id=”1386″]

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。