ROUND関数(四捨五入、切り捨て/切り上げ、偶数丸めを行った値を取得する)

MySQL で ROUND 関数を使用すると、引数に指定した値を四捨五入や切捨て/切り上げ、または偶数丸めを行った値を取得することができます。ここでは MySQL における ROUND 関数の使い方について解説します。

(Last modified: )

ROUND 関数の使い方

ROUND 関数を使うと引数に指定した値を四捨五入、切捨て/切り上げ、または偶数丸めを行った値を取得するために使用します。書式は次の通りです。

ROUND(X)
ROUND(X,D)

引数 X を D 小数点に丸めた値を取得します。 D を指定しない場合は 0 が指定されたものとして扱われます。

丸め方については 1 番目の引数の型によって次のように決まっています。

整数型や固定小数点型などの真値の場合:
0.5 以上の小数部を持つ値は、正の場合は次の整数に切り上げられ、負の場合は次の整数に切り下げられます。
0.5 未満の小数部を持つ値は、正の場合は次の整数に切り下げられ、負の場合は次の整数に切り上げられます。

ROUND(6.7) = 7
ROUND(6.5) = 7
ROUND(6.2) = 6
ROUND(7.7) = 8
ROUND(7.5) = 8
ROUND(7.2) = 7

ROUND(-6.8) = -7
ROUND(-6.5) = -7
ROUND(-6.3) = -6
ROUND(-7.8) = -8
ROUND(-7.5) = -8
ROUND(-7.3) = -7

浮動小数点型などの近似値の場合:
任意の小数部を持つ値は、もっとも近い偶数の整数に丸められます。
(小数部がちょうど 0.5 の値は偶数の値の方に丸められます)

ROUND(67E-1) = 7
ROUND(65E-1) = 6
ROUND(62E-1) = 6
ROUND(77E-1) = 8
ROUND(75E-1) = 8
ROUND(72E-1) = 7

ROUND(-67E-1) = -7
ROUND(-65E-1) = -6
ROUND(-62E-1) = -6
ROUND(-77E-1) = -8
ROUND(-75E-1) = -8
ROUND(-72E-1) = -7

近似値の場合は四捨五入ではなく偶数丸めが行われる点に注意してください。

-- --

それでは実際に試してみます。最初に真値の場合の正の数について小数点第一位で丸めます。次のように実行してください。

select round(6.7), round(6.5), round(6.2);
select round(7.7), round(7.5), round(7.2);

MySQL/ROUND 関数の使い方(1)

次に真値の場合の負の数について小数点第一位で丸めます。次のように実行してください。

select round(-6.7), round(-6.5), round(-6.2);
select round(-7.7), round(-7.5), round(-7.2);

MySQL/ROUND 関数の使い方(2)

次に近似値の場合の正の数について小数点第一位で丸めます。次のように実行してください。

select round(67E-1), round(65E-1), round(62E-1);
select round(77E-1), round(75E-1), round(72E-1);

MySQL/ROUND 関数の使い方(3)

round(65E-1) が 6 なのに対して round(75E-1) が 8 になる点に注意してください。

最後に近似値の場合の正の数について小数点第一位で丸めます。次のように実行してください。

select round(-67E-1), round(-65E-1), round(-62E-1);
select round(-77E-1), round(-75E-1), round(-72E-1);

MySQL/ROUND 関数の使い方(4)

負の数についても round(-65E-1) が -6 なのに対して round(-75E-1) が -8 になる点に注意してください。

今度は丸めを行う小数点の位置を変えてみます。次のように実行してください。

select round(7.735, 0), round(7.735, 1), round(7.735, 2);

MySQL/ROUND 関数の使い方(5)

-- --

round 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。