MariaDB FLOOR() vs TRUNCATE()

发布于

MariaDB 有一个函数和一个函数,可以根据其参数的确切值返回相同的结果或不同的结果。FLOOR()``TRUNCATE()

以下是MariaDB之间和之间的区别的简要介绍。FLOOR()``TRUNCATE()

区别

简而言之,以下是每个函数之间的区别:

  • FLOOR()返回不大于其参数的最大整数值。
  • TRUNCATE()将其参数截断为指定的小数位数。

语法

首先,以下是每个函数的语法。

FLOOR()

的语法是这样的:FLOOR()

FLOOR(X)

它返回不大于 的最大整数值。X

TRUNCATE()

的语法是这样的:TRUNCATE()

TRUNCATE(X,D)

TRUNCATE()返回截断到小数位的数字。X``D

示例

下面是一个比较,以演示 和 之间的区别:FLOOR()``TRUNCATE()

SELECT 
    FLOOR(-3.6789),
    TRUNCATE(-3.6789, 0);

输出:

+----------------+----------------------+
| FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) |
+----------------+----------------------+
|             -4 |                   -3 |
+----------------+----------------------+

在这个示例中,数字是负值,每个函数的结果都不同。

  • FLOOR()返回不大于其参数的最大整数 () 值。-4
  • 另一方面,该函数只是截断了指定小数位的数字。TRUNCATE()

相同的结果

这两个函数有时可以返回相同的结果。这完全取决于传递的参数的值。

如果我们将数字更改为正值,则两个函数将返回相同的结果:

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 0);

输出:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 0) |
+---------------+---------------------+
|             3 |                   3 |
+---------------+---------------------+

第二个论点

这两个函数之间的另一个明显区别是接受/需要第二个参数。这可能会导致结果包含小数部分。TRUNCATE()

FLOOR()但是,只返回一个整数,因此不会返回任何小数部分。

例

SELECT 
    FLOOR(3.6789),
    TRUNCATE(3.6789, 2);

输出:

+---------------+---------------------+
| FLOOR(3.6789) | TRUNCATE(3.6789, 2) |
+---------------+---------------------+
|             3 |                3.67 |
+---------------+---------------------+

函数ROUND()

这两个函数都与函数不同,函数将其参数舍入到指定的小数位数。ROUND()