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)
所有数字都向零舍入。