更新日期:2024年09月11日
返回值
返回数值X 截取到D 位小数后的数字;
如果D 为0,结果将不包含小数点和小数部分;
如果D 为负数,表示截去(归零)X 值小数点左边第D 位开始后面所有低位的
值。
示例
示例1
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 842
X 为“1.223”,小数点后保留一位。
gbase> SELECT TRUNCATE(1.223,1) FROM t;
+-------------------+
| TRUNCATE(1.223,1) |
+-------------------+
| 1.2 |
+-------------------+
1 row in set
示例2
X 为“1.999”,小数点后保留一位。
gbase> SELECT TRUNCATE(1.999,1) FROM t;
+-------------------+
| TRUNCATE(1.999,1) |
+-------------------+
| 1.9 |
+-------------------+
1 row in set
示例3
D 为“0”,返回值不包含小数点和小数部分。
gbase> SELECT TRUNCATE(1.999,0) FROM t;
+-------------------+
| TRUNCATE(1.999,0) |
+-------------------+
| 1 |
+-------------------+
1 row in set
示例4
X 为“-1.999”,小数点后保留一位。
gbase> SELECT TRUNCATE(-1.999,1) FROM t;
+--------------------+
| TRUNCATE(-1.999,1) |
+--------------------+
| -1.9 |
+--------------------+
1 row in set
示例5
D 为-2,个位十位归零。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 843
gbase> SELECT TRUNCATE(122,-2) FROM t;
+------------------+
| TRUNCATE(122,-2) |
+------------------+
| 100 |
+------------------+
1 row in set
示例6
十进值小数在计算机中通常不以精确数字存储,而是双精度型的值。
gbase> SELECT TRUNCATE(10.28*100,0) FROM t;
+-----------------------+
| TRUNCATE(10.28*100,0) |
+-----------------------+
| 1028 |
+-----------------------+
1 row in set
说明
返回结果为1028,是因为10.28 实际上是以某些像10.2799999999999999 的形式被存储的。