Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


12.20.4 丸め動作

このセクションでは、ROUND() 関数、および厳密値型 (DECIMAL と整数) を持つカラムへの挿入での高精度計算の丸めについて説明します。

ROUND() 関数は、その引数が厳密値または近似値のどちらであるかに応じて、異なった方法で丸めます。

  • 真値の数値の場合、ROUND()四捨五入ルールを使用します。0.5 以上の小数部を持つ値は、正の場合は次の整数に切り上げられ、負の場合は次の整数に切り下げられます。(つまり、ゼロから遠い方に丸められます。)0.5 未満の小数部を持つ値は、正の場合は次の整数に切り下げられ、負の場合は次の整数に切り上げられます。

  • 近似値の数字の場合、結果は C ライブラリによって異なります。つまり、多くのシステムでは、ROUND()偶数丸めルールを使用します。どのような小数部を持つ値も、もっとも近い偶数に丸められます。

次の例では、正確な値の丸めと近似値の丸めの相違点を示します。

mysql> SELECT ROUND(2.5), ROUND(25E-1);
+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
| 3          |            2 |
+------------+--------------+

DECIMAL または整数カラムへの挿入では、ターゲットが厳密値データ型であるため、挿入される値が厳密値または近似値のどちらであるかには関係なく、丸めでは四捨五入が使用されます。

mysql> CREATE TABLE t (d DECIMAL(10,0));
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO t VALUES(2.5),(2.5E0);
Query OK, 2 rows affected, 2 warnings (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 2

mysql> SELECT d FROM t;
+------+
| d    |
+------+
| 3    |
| 3    |
+------+

User Comments
Sign Up Login You must be logged in to post a comment.