【SQL】round関数を利用して四捨五入を行う~select round~

MySQL

データの出力結果を四捨五入する方法について紹介していきます。

前提条件

商品を管理しているテーブルを利用する

使用するテーブル: products テーブル

+----+-----------------+-------+
| id | name            | price |
+----+-----------------+-------+
|  1 | ドックフード001 |  1000 |
|  2 | ドックフード002 |  2000 |
|  3 | ドックフード003 |  1500 |
|  4 | ドックフード004 |  1800 |
|  5 | ドックフード005 |  2500 |
|  6 | ドックフード006 |  1500 |
+----+-----------------+-------+
6 rows in set (0.001 sec)

条件

  • priceカラムに消費税をかけてみる
  • 税率をかけた結果を四捨五入する

ラウンド関数を使わないで演算する

 select price * 1.08 from products;

出力結果

+--------------+
| price * 1.08 |
+--------------+
|      1080.00 |
|      2160.00 |
|      1620.00 |
|      1944.00 |
|      2700.00 |
|      1620.00 |
+--------------+
6 rows in set (0.001 sec)

出力結果に小数点以下が表示されているのがわかる。

ラウンド関数の使い方

構文

select round(カラム名または計算式,丸めの桁数) from テーブル名;

コードの見方

青文字・・・省略できない決まり文句
紫文字・・・コメント
白文字・・・利用者の任意で入力する文字列

使用するSQL文

select round(price * 1.10,1) from products;

priceカラムに税率をかけて、小数点第二位で四捨五入を指定します。

出力結果

+-----------------------+
| round(price * 1.10,1) |
+-----------------------+
|                1100.0 |
|                2200.0 |
|                1650.0 |
|                1980.0 |
|                2750.0 |
|                1650.0 |
+-----------------------+
6 rows in set (0.001 sec)

小数点第二位で四捨五入することができました。

丸めの桁とは

学生時代に勉強とは無縁の私は知らなかったので補足します。

丸めの桁とは端数処理のこと

小数点第何位で四捨五入をして表示させるかを設定できます。

productsテーブルにそれぞれ異なる丸めの桁数を指定して確認してみます。

ラウンド関数で丸めの桁数を1に設定する
select round(price * 1.10,1) from products;

出力結果

+-----------------------+
| round(price * 1.10,1) |
+-----------------------+
|                1100.0 |
|                2200.0 |
|                1650.0 |
|                1980.0 |
|                2750.0 |
|                1650.0 |
+-----------------------+
6 rows in set (0.001 sec)

四捨五入は小数点第二位で行われ、小数点第1位まで出力されました。

ラウンド関数で丸めの桁数を2に設定する
select round(price * 1.10,2) from products;

出力結果

+-----------------------+
| round(price * 1.10,2) |
+-----------------------+
|               1100.00 |
|               2200.00 |
|               1650.00 |
|               1980.00 |
|               2750.00 |
|               1650.00 |
+-----------------------+
6 rows in set (0.001 sec)

四捨五入は小数点第三位で行われ、小数点第二位まで出力されました。

ラウンド関数で丸めの桁数を0または指定しない
select round(price * 1.10) from products;

出力結果

+---------------------+
| round(price * 1.10) |
+---------------------+
|                1100 |
|                2200 |
|                1650 |
|                1980 |
|                2750 |
|                1650 |
+---------------------+
6 rows in set (0.001 sec)

小数点第一位で四捨五入が行われています。

タイトルとURLをコピーしました