MySQL TRUNCATE() 函数的第二个参数指定小数位数,如果该参数为负值,会对输出产生什么影响?


如果我们指定第二个参数为负值,则小数点前的数字将被删除,**不会**进行四舍五入。要删除的数字位数取决于第二个负参数的值。以下示例将演示根据第二个参数的负值,TRUNCATE() 函数输出的变化。

mysql> Select TRUNCATE(1789.456,-1);
+-----------------------+
| TRUNCATE(1789.456,-1) |
+-----------------------+
|                  1780 |
+-----------------------+
1 row in set (0.00 sec)  

上面的查询返回 1780,因为由于第二个参数的值为 -1,所以删除了小数点前的第一位数字。

mysql> Select TRUNCATE(1789.456,-2);
+-----------------------+
| TRUNCATE(1789.456,-2) |
+-----------------------+
|                  1700 |
+-----------------------+
1 row in set (0.00 sec)  

上面的查询返回 1700,因为由于第二个参数的值为 -2,所以删除了小数点前的两位数字。

mysql> Select TRUNCATE(1789.456,-3);
+-----------------------+
| TRUNCATE(1789.456,-3) |
+-----------------------+
|                  1000 |
+-----------------------+
1 row in set (0.00 sec)  

上面的查询返回 1000,因为由于第二个参数的值为 -3,所以删除了小数点前的三位数字。

mysql> Select TRUNCATE(1789.456,-4);
+-----------------------+
| TRUNCATE(1789.456,-4) |
+-----------------------+
|                     0 |
+-----------------------+
1 row in set (0.00 sec)  

上面的查询返回 0,因为小数点前的数字总数为 4,而第二个参数的值为 -4。

更新于: 2020年2月10日

297 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.