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

MySQLのDECIMAL型で小数点以下10桁の精度を設定する方法

DECIMAL型の基本:2つのパラメータの意味

MySQLのDECIMAL()型は2つのパラメータを受け取ります。第1パラメータは格納できる数値全体の桁数(精度)、第2パラメータは小数点以下の桁数(スケール)を表します。

たとえばDECIMAL(10,10)と指定した場合、合計10桁すべてが小数部分に割り当てられるため、整数部分は0桁となり、1以上の整数値は格納できません。小数点以下10桁の精度を持たせつつ整数部分も扱いたい場合は、DECIMAL(20,10)のように十分な総桁数を確保する必要があります。

例:DECIMAL(20,10)で0.9999999999を保存する

それでは、実際にテーブルを作成して動作を確認してみましょう。まずはテーブル作成用のクエリです。

mysql> create table Decimal_Demo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Price DECIMAL(20,10),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (1.06 sec)

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

mysql> insert into Decimal_Demo(Price) values(7475433123.1727374747);
Query OK, 1 row affected (0.15 sec)
mysql> insert into Decimal_Demo(Price) values(999.9999999999);
Query OK, 1 row affected (0.19 sec)
mysql> insert into Decimal_Demo(Price) values(1363645345.1726364664);
Query OK, 1 row affected (0.16 sec)
mysql> insert into Decimal_Demo(Price) values(1.172636466437475656565);
Query OK, 1 row affected, 1 warning (0.53 sec)
mysql> insert into Decimal_Demo(Price) values(0.9999999999);
Query OK, 1 row affected (0.20 sec)

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

mysql> select *from Decimal_Demo;

出力結果は次のとおりです。

+----+-----------------------+
| Id | Price |
+----+-----------------------+
| 1 | 7475433123.1727374747 |
| 2 | 999.9999999999 |
| 3 | 1363645345.1726364664 |
| 4 | 1.1726364664 |
| 5 | 0.9999999999 |
+----+-----------------------+
5 rows in set (0.00 sec)

ポイント解説

注目すべきはId=4の行です。挿入した値「1.172636466437475656565」は小数点以下19桁ありますが、DECIMAL(20,10)では小数点以下10桁までしか保持できないため、「1.1726364664」に丸められて格納されています。この際、警告(warning)が発生することにも注意してください。

このように、DECIMAL型では定義されたスケールを超える小数部分は自動的に丸められます。金額計算など誤差が許されない場面では、あらかじめ必要な精度(precision)とスケール(scale)を見越して適切に指定することが重要です。

  1. MySQL APTリポジトリを使ったMySQLのアップグレード手順を徹底解説

    MySQL APTリポジトリを利用すると、既存のMySQL環境に対して「インプレースアップグレード」を実行できます。システムにMySQLを再インストールすることなく、パッケージ管理ツールだけで最新バージョンへ移行できるのが大きなメリットです。この記事では、MySQL APTリポジトリを使ったアップグレードの具体的な手順と、実行時の注意点について詳しく解説します。MySQLのアップグレード手順1. MySQL APTリポジトリが登録されていることを確認まず、利用しているシステムのリポジトリ一覧に、MySQL APTリポジトリがすでに追加されていることを確認してください。まだ追加していない場合は、

  2. MySQL Yumリポジトリを使ったMySQLのアップグレード手順を解説

    MySQLは、公式のMySQL Yumリポジトリを利用することで簡単にアップグレードできます。本記事では、Yumリポジトリを使ったアップグレードの具体的な手順をわかりやすく解説します。 デフォルト設定では、MySQL Yumリポジトリは、インストール時にユーザーが選択したリリースシリーズ内で最新バージョンへの更新を行います。別のリリースシリーズへアップグレードしたい場合は、まず現在選択しているシリーズのサブリポジトリを無効化し、その後、ターゲットとなるシリーズのサブリポジトリを有効化する必要があります。なお、複数のシリーズをまたぐ一括アップグレードは避け、1つ隣のシリーズへ順番にアップグレー