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

MySQLで浮動小数点数を保存するには?DECIMAL型の使い方を実例付きで解説

MySQLで浮動小数点数(float)のような数値を正確に保存したい場合は、DECIMAL() 型を使用するのがおすすめです。FLOATやDOUBLEは近似値として扱われるため誤差が生じる可能性がありますが、DECIMALなら金額などの正確な値をそのまま格納できます。

ここでは、DECIMAL(10,2) を使って価格データを保存する例を見ていきましょう。なお、「DECIMAL(10,2)」は「整数部・小数部を合わせて最大10桁、うち小数点以下2桁」という意味になります。

1. テーブルを作成する

まず、CREATE TABLE文でテーブルを作成します。

mysql> create table DemoTable
   (
   Price DECIMAL(10,2)
   );
Query OK, 0 rows affected (1.59 sec)

2. レコードを挿入する

次に、INSERT文を使ってテーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable values(874674.50);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable values(9948984.20);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values(12345678.99);
Query OK, 1 row affected (0.18 sec)

3. データを確認する

SELECT文でテーブル内のすべてのレコードを表示して、値が正しく保存されているか確認しましょう。

mysql> select *from DemoTable;

出力結果

+-------------+
| Price       |
+-------------+
| 874674.50   |
| 9948984.20  |
| 12345678.99 |
+-------------+
3 rows in set (0.00 sec)

このように、DECIMAL(10,2) を指定することで、小数点以下2桁までの数値を誤差なく保存できました。金額計算など精度が求められる場面では、FLOATではなくDECIMAL型を選ぶことで、丸め誤差によるトラブルを防ぐことができます。

  1. MySQL Workbenchの列フラグ(PK・NN・AIなど)の意味を徹底解説

    MySQL Workbenchでは、テーブルの列(カラム)に対してさまざまな「列フラグ」を設定することで、データの整合性を保つことができます。テーブルデザイナーで各カラムのチェックボックスに表示されるこれらのフラグは、それぞれ以下のような意味を持っています。PK - Primary Key(主キー)NN - NOT NULL(NULL値不可)BIN - Binary(バイナリ)UN - Unsigned(符号なし)UQ - Unique(一意制約)ZF - Zero Filled(ゼロ埋め)G - Generated Column(生成列)AI - Auto Increment(自動採番)それ

  2. MySQLの「SELECT TRUE」とは?意味と使い方を解説

    MySQLにおける「SELECT TRUE」の基本MySQLでは、SELECT TRUEというステートメントを実行すると、条件に一致する行ごとに「1」が返されます。これは、MySQLにおいてTRUE(真)という論理値が内部的に整数の「1」として扱われているためです。逆にFALSE(偽)は「0」に相当します。この記事では、実際にテーブルを作成し、SELECT TRUEがどのような結果を返すのかを具体的な例で確認していきます。検証用テーブルの作成まず、以下のコマンドでサンプルテーブルを作成します。mysql> create table DemoTable(Name varchar(100))