MySQL 中 TRUNCATE(X,D) 函数返回数字 X,截断为 D 位小数。如果 D 为 0,则结果没有小数点或小数部分。 D 可以为负数,以使值 X 的小数点左侧的 D 位变为零。
TRUNCATE(X,D)X 待进行截取小数的浮点数
D 指定要截取小数的位数
(1)使用 TRUNCATE 函数将浮点数 1.223 截取 1 位,如下:
mysql> SELECT TRUNCATE(1.223,1);
+-------------------+
| TRUNCATE(1.223,1) |
+-------------------+
| 1.2 |
+-------------------+
1 row in set (0.04 sec)(2)使用 TRUNCATE 函数截取小数时,不会进行四舍五入。如下:
mysql> SELECT TRUNCATE(1.999,1);
+-------------------+
| TRUNCATE(1.999,1) |
+-------------------+
| 1.9 |
+-------------------+
1 row in set (0.04 sec)由运行结果可知,1.999 被截取 1 位小数时,结果为 1.9。并没四舍五入为 2.0。
(3) 使用 TRUNCATE 函数将浮点数截取为整数,如下:
mysql> SELECT TRUNCATE(1.999,0);
+-------------------+
| TRUNCATE(1.999,0) |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.04 sec)(4)使用 TRUNCATE 函数对负数进行截取,如下:
mysql> SELECT TRUNCATE(-1.999,1);
+--------------------+
| TRUNCATE(-1.999,1) |
+--------------------+
| -1.9 |
+--------------------+
1 row in set (0.04 sec)(5)使用 TRUNCATE 函数对指定数字截取 -2 位,如下:
mysql> SELECT TRUNCATE(122,-2);
+------------------+
| TRUNCATE(122,-2) |
+------------------+
| 100 |
+------------------+
1 row in set (0.04 sec)由运行结果可知,对 122(即 122.00) 进行截取 -2 为,即将小数点左边两位变为 0,因此返回结果为 100。
(6)使用 TRUNCATE 函数将 X 参数指定为数学表达式,然后截取为整数。如下:
mysql> SELECT TRUNCATE(10.28*100,0);
+-----------------------+
| TRUNCATE(10.28*100,0) |
+-----------------------+
| 1028 |
+-----------------------+
1 row in set (0.03 sec)所有数字都向零舍入。