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,则该函数返回四舍五入到 D 位小数的 X。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 或不 >=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)

更新于: 2020年6月20日

4K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.