跳转到主要内容
以下文档根据 system.functions 系统表生成

ceil

引入版本:v1.1.0 floor 类似,但返回大于或等于 x 的最小舍入值。 如果舍入导致溢出 (例如 ceiling(255, -1)) ,则结果未定义。 语法
别名: ceiling 参数
  • x — 要进行舍入的值。Float*Decimal*(U)Int*
  • N — 可选。要舍入到的小数位数。默认为 0,即舍入为整数。可以为负数。(U)Int*
返回值 返回与 x 类型相同的舍入结果。Float*Decimal*(U)Int* 示例 基本用法
Query
Response
负数精度
Query
Response

floor

引入版本:v1.1.0 返回小于或等于 x 的最大舍入值,其中该值是 1 / 10 * N 的倍数;如果 1 / 10 * N 无法精确表示,则返回相应数据类型中最接近的数值。 对于整数参数,可使用负数 N 进行舍入。 当 N 为非负数时,函数返回 x 如果舍入导致溢出 (例如 floor(-128, -1)) ,则结果未定义。 语法
参数
  • x — 要进行舍入的值。Float*Decimal*(U)Int*
  • N — 可选。要舍入到的小数位数。默认为 0,表示舍入到整数。可以为负数。(U)Int*
返回值 返回与 x 类型相同的舍入结果。Float*Decimal*(U)Int*(U)Int* 示例 使用示例
Query
Response
精度为负
Query
Response

round

Introduced in: v1.1.0 将一个值舍入到指定的小数位数 N
  • 如果 N > 0,函数会舍入到小数点右侧。
  • 如果 N < 0,函数会舍入到小数点左侧。
  • 如果 N = 0,函数会舍入为最接近的整数。
该函数返回指定数量级上最接近的数值。 如果输入值与两个相邻数的距离相等,则对于 Float* 输入,函数使用银行家舍入法;对于其他数值类型 (Decimal*) ,则按远离零的方向舍入。 如果舍入导致溢出 (例如 round(255, -1)) ,则结果未定义。 Syntax
参数 返回值 返回与 x 类型相同的舍入结果。Float*Decimal*(U)Int* 示例 Float 类型输入
Query
Response
Decimal 类型输入
Query
Response

roundAge

引入版本:v1.1.0 接受一个表示人类年龄的数值,将其与标准年龄区间进行比较,并返回该数值所在区间的上限值或下限值。
  • 对于 age < 1,返回 0
  • 对于 1 ≤ age ≤ 17,返回 17
  • 对于 18 ≤ age ≤ 24,返回 18
  • 对于 25 ≤ age ≤ 34,返回 25
  • 对于 35 ≤ age ≤ 44,返回 35
  • 对于 45 ≤ age ≤ 54,返回 45
  • 对于 age ≥ 55,返回 55
语法
参数
  • age — 表示年龄 (以年为单位) 的数值。(U)Int*Float*
返回值 返回 age 所在区间的上限或下限年龄。UInt8 示例 用法示例
Query
Response

roundBankers

引入版本:v20.1.0 将数字舍入到指定的小数位 N。 如果待舍入的数字恰好位于两个数的中间,函数会使用一种称为银行家舍入法 (banker’s rounding) 的舍入方法,这是 IEEE 754 为浮点数定义的默认舍入方式。
  • 如果 N > 0,函数会舍入到小数点右侧
  • 如果 N < 0,函数会舍入到小数点左侧
  • 如果 N = 0,函数会舍入为整数
注意
  • 当待舍入的数字恰好位于两个数的中间时,会在指定的小数位上舍入到最接近的偶数。 例如:3.5 向上舍入为 42.5 向下舍入为 2
  • round 函数对浮点数采用相同的舍入方式。
  • roundBankers 函数也会以相同方式对整数进行舍入,例如 roundBankers(45, -1) = 40
  • 在其他情况下,函数会将数字舍入到最接近的整数。
对数字求和或相减时使用银行家舍入法使用银行家舍入法,可以减少数字舍入对这些数字求和或相减结果的影响。例如,对数字 1.5, 2.5, 3.5, 4.5 使用不同的舍入方式求和:
  • 不舍入:1.5 + 2.5 + 3.5 + 4.5 = 12
  • 银行家舍入法:2 + 2 + 4 + 4 = 12
  • 舍入到最接近的整数:2 + 3 + 4 + 5 = 14
语法
参数 返回值 返回按银行家舍入法处理后的值。(U)Int*Decimal*Float* 示例 基本用法
Query
Response

roundDown

引入版本:v20.1.0 将一个数向下舍入到指定数组中的某个元素。 如果该值小于下限,则返回下限。 语法
参数 返回值 返回向下舍入到 arr 中某个元素的数值。如果该值小于最小界限,则返回最小界限。(U)Int*Float* 示例 用法示例
Query
Response

roundDuration

引入版本:v1.1.0 将一个数向下舍入到最接近的常用耗时值之一:1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。 如果该数小于 1,则返回 0 语法
参数
  • num — 要舍入到常见耗时集合中的某个数值。(U)Int*Float*
返回值 num < 1 时,返回 0。否则,返回以下值之一:1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000UInt16 示例 用法示例
Query
Response

roundToExp2

引入版本:v1.1.0 将一个数向下舍入为最接近的 2 的幂 (非负整数) 。 如果该数小于 1,则返回 0 语法
参数 返回值 返回将 num 向下舍入为最接近的二的 (非负整数) 幂后的结果;如果 num < 1,则返回 0(U)Int*Float* 示例 用法示例
Query
Response

trunc

引入版本:v1.1.0 floor 类似,但返回绝对值不大于 x 且绝对值最大的舍入值。 语法
别名: truncate 参数
  • x — 要进行舍入的值。Float*Decimal*(U)Int*
  • N — 可选。要舍入到的小数位数。默认为 0,表示舍入到整数。(U)Int*
返回值 返回与 x 类型相同的舍入结果。Float*Decimal*(U)Int* 示例 基本用法
Query
Response
最后修改于 2026年7月2日