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)
猜你喜欢