TRUNCATE 截断到指定的小数位数

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)

所有数字都向零舍入。

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号