MySQL的TRUNCATE()函数和ROUND()函数之间的显着区别是什么?
TRUNCATE() 函数用于返回X值截断为D个小数位。如果D为0,则小数点被删除。如果D为负,则整数部分中的D个值被截断。考虑以下示例 –
mysql> Select TRUNCATE(7.536432,2);
+----------------------+
| TRUNCATE(7.536432,2) |
+----------------------+
| 7.53 |
+----------------------+
1 row in set (0.00 sec)
ROUND() 函数返回将X四舍五入到最近的整数。如果提供第二个参数D,则函数将返回X四舍五入到D个小数位。D必须为正,否则小数点右侧的所有数字都将被删除。考虑以下示例 –
mysql>SELECT ROUND(5.693893);
+---------------------------------------------------------+
| ROUND(5.693893) |
+---------------------------------------------------------+
| 6 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql>SELECT ROUND(5.693893,2);
+---------------------------------------------------------+
| ROUND(5.693893,2) |
+---------------------------------------------------------+
| 5.69 |
+---------------------------------------------------------+
1 row in set (0.00 sec)
由上述定义和示例,我们可以观察到以下两个函数之间的区别 –
- ROUND()函数根据第二个参数D和数字本身(D小数点后的数字是否大于等于5)将数字四舍五入。
- TRUNCATE()函数会将数字截断为D个小数位,而不检查D小数点后的数字是否大于等于5。
mysql> Select ROUND(1.289,2)AS 'AFTER ROUND',TRUNCATE(1.289,2)AS 'AFTER TRUNCATE';
+-------------+----------------+
| AFTER ROUND | AFTER TRUNCATE |
+-------------+----------------+
| 1.29 | 1.28 |
+-------------+----------------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程
极客教程