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)