以下文档根据
system.functions 系统表生成ceil
floor 类似,但返回大于或等于 x 的最小舍入值。
如果舍入导致溢出 (例如 ceiling(255, -1)) ,则结果未定义。
语法
ceiling
参数
返回值
返回与 x 类型相同的舍入结果。Float* 或 Decimal* 或 (U)Int*
示例
基本用法
Query
Response
Query
Response
floor
x 的最大舍入值,其中该值是 1 / 10 * N 的倍数;如果 1 / 10 * N 无法精确表示,则返回相应数据类型中最接近的数值。
对于整数参数,可使用负数 N 进行舍入。
当 N 为非负数时,函数返回 x。
如果舍入导致溢出 (例如 floor(-128, -1)) ,则结果未定义。
语法
x 类型相同的舍入结果。Float* 或 Decimal* 或 (U)Int* 或 (U)Int*
示例
使用示例
Query
Response
Query
Response
round
N。
- 如果
N > 0,函数会舍入到小数点右侧。 - 如果
N < 0,函数会舍入到小数点左侧。 - 如果
N = 0,函数会舍入为最接近的整数。
Float* 输入,函数使用银行家舍入法;对于其他数值类型 (Decimal*) ,则按远离零的方向舍入。
如果舍入导致溢出 (例如 round(255, -1)) ,则结果未定义。
Syntax
x 类型相同的舍入结果。Float* 或 Decimal* 或 (U)Int*
示例
Float 类型输入
Query
Response
Query
Response
roundAge
- 对于
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 所在区间的上限或下限年龄。UInt8
示例
用法示例
Query
Response
roundBankers
N。
如果待舍入的数字恰好位于两个数的中间,函数会使用一种称为银行家舍入法 (banker’s rounding) 的舍入方法,这是 IEEE 754 为浮点数定义的默认舍入方式。
- 如果
N > 0,函数会舍入到小数点右侧 - 如果
N < 0,函数会舍入到小数点左侧 - 如果
N = 0,函数会舍入为整数
注意
- 当待舍入的数字恰好位于两个数的中间时,会在指定的小数位上舍入到最接近的偶数。
例如:
3.5向上舍入为4,2.5向下舍入为2。 round函数对浮点数采用相同的舍入方式。roundBankers函数也会以相同方式对整数进行舍入,例如roundBankers(45, -1) = 40。- 在其他情况下,函数会将数字舍入到最接近的整数。
(U)Int* 或 Decimal* 或 Float*
示例
基本用法
Query
Response
roundDown
num— 要向下舍入的数值。(U)Int*或Decimal*或Float*arr— 用于将num向下舍入到其中某个元素的数组。Array((U)Int*)或Array(Float*)
arr 中某个元素的数值。如果该值小于最小界限,则返回最小界限。(U)Int* 或 Float*
示例
用法示例
Query
Response
roundDuration
1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。
如果该数小于 1,则返回 0。
语法
num < 1 时,返回 0。否则,返回以下值之一:1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。UInt16
示例
用法示例
Query
Response
roundToExp2
0。
语法
num 向下舍入为最接近的二的 (非负整数) 幂后的结果;如果 num < 1,则返回 0。(U)Int* 或 Float*
示例
用法示例
Query
Response
trunc
floor 类似,但返回绝对值不大于 x 且绝对值最大的舍入值。
语法
truncate
参数
返回值
返回与 x 类型相同的舍入结果。Float* 或 Decimal* 或 (U)Int*
示例
基本用法
Query
Response