Spec-Zone .ru
спецификации, руководства, описания, API

12.19.4. Округление Поведения

Этот раздел обсуждает математику точности, округляющуюся для ROUND() функционируйте и для вставок в столбцы с типами точного значения (DECIMAL и целое число).

ROUND() функционируйте округляется по-другому в зависимости от того, точен ли его параметр или приблизителен:

Следующие шоу в качестве примера, как округление отличается для точных и приближенных значений:

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

Для вставок в a 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: 2mysql> SELECT d FROM
        t;+------+| d    |+------+| 3    || 3    |+------+