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

mysqlmysqli database

如果我们指定第二个参数的负值,那么小数点前的数字将被删除,不进行四舍五入。要删除的数字数量取决于第二个参数的负值。以下示例将演示 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。


相关文章