MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで指定した桁数に丸めたFLOAT型の値を取得する方法

はじめに

MySQLでは、FLOAT型のカラムから小数点以下を指定した桁数に丸めて取得したい場合、ROUND()関数を使用します。この関数を使うことで、元のデータを変更することなく、クエリの実行結果として任意の精度で値を表示できます。

ROUND()関数の基本構文

ROUND()関数の書式は以下の通りです。

SELECT ROUND(カラム名, 桁数) FROM テーブル名;

第1引数に対象のカラム名、第2引数に丸める小数点以下の桁数(整数値)を指定します。例えば「2」を指定すると、小数第3位を四捨五入して小数点以下2桁の値が返されます。

動作確認用テーブルの作成

それでは、実際にテーブルを作成してROUND()関数の動きを確認してみましょう。まずは以下のクエリでテーブルを作成します。

mysql> create table givenPrecisionDemo
-> (
-> Amount float
-> );
Query OK, 0 rows affected (0.61 sec)

ここでは「Amount」というFLOAT型のカラムを1つ持つテーブル「givenPrecisionDemo」を作成しました。

サンプルデータの挿入

次に、INSERT文を使っていくつかのレコードを挿入します。

mysql> insert into givenPrecisionDemo(Amount) values(45.678);
Query OK, 1 row affected (0.12 sec)
mysql> insert into givenPrecisionDemo(Amount) values(123.456);
Query OK, 1 row affected (0.15 sec)
mysql> insert into givenPrecisionDemo(Amount) values(245.890);
Query OK, 1 row affected (0.20 sec)
mysql> insert into givenPrecisionDemo(Amount) values(980.678);
Query OK, 1 row affected (0.19 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみます。

mysql> select *from givenPrecisionDemo;

実行結果は以下の通りです。

+---------+
| Amount |
+---------+
| 45.678 |
| 123.456 |
| 245.89 |
| 980.678 |
+---------+
4 rows in set (0.00 sec)

ROUND()関数で指定桁数に丸めて取得する

いよいよ本題です。Amountカラムの値を小数点以下2桁に丸めて取得するには、次のようにクエリを実行します。

mysql> SELECT ROUND(Amount,2) from givenPrecisionDemo;

実行結果:

+-----------------+
| ROUND(Amount,2) |
+-----------------+
| 45.68 |
| 123.46 |
| 245.89 |
| 980.68 |
+-----------------+
4 rows in set (0.00 sec)

ご覧のとおり、すべての値が小数点以下2桁に四捨五入されて表示されました。例えば「45.678」は「45.68」に、「123.456」は「123.46」になっています。

補足:表示時の丸めとデータ保存の違い

ROUND()関数はあくまで取得結果を丸めるだけで、テーブル内の元データは変更されない点に注意してください。もし金額などの正確な小数計算が必要な場合は、FLOAT型ではなくDECIMAL型を使うことをおすすめします。DECIMAL型であれば、カラム定義の時点で精度(全体の桁数と小数点以下の桁数)を固定できるため、浮動小数点特有の誤差を回避できます。

-- 例:小数点以下2桁固定のDECIMALカラム
Amount DECIMAL(10,2)

まとめ

  • MySQLでFLOAT型の値を指定した桁数に丸めて取得するには、ROUND(カラム名, 桁数)を使用する
  • 第2引数に小数点以下の桁数を指定し、四捨五入した結果が返される
  • ROUND()は表示を丸めるだけなので、元データは変更されない
  • 金額など精度が重要なデータにはDECIMAL型の利用を検討する
  1. MySQLの正規表現(REGEXP)を使ってSELECTクエリでレコードを抽出する方法

    MySQLの正規表現(REGEXP)を使ってSELECTクエリでレコードを抽出する方法 MySQLでは、REGEXP演算子をWHERE句と組み合わせることで、正規表現パターンに一致するレコードだけを柔軟に抽出できます。本記事では、サンプルテーブルの作成からデータ挿入、そして正規表現を活用したSELECTクエリの実行まで、具体的な手順を解説します。 1. テーブルの作成 まず、以下のコマンドでサンプル用のテーブルを作成します。 mysql> create table DemoTable1573     -> (   &nb

  2. MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

    MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;