当前位置: 首页 > 文档资料 > MySQL 中文手册 >

24.4. 四舍五入

优质
小牛编辑
151浏览
2023-12-01

本节讨论了精度数学的四舍五入特性,ROUND()函数,以及插入DECIMAL列时的四舍五入特性。

ROUND()函数的行为取决于其参量是准确的还是近似的:

·对于准确值数值,ROUND()采用“半值向上舍入”规则:如果小数部分的值为.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: 2mysql> SELECT d FROM t;+------+| d    |+------+| 3    || 3    |+------+