Rounding functions
The documentation below is generated from the system.functions system table
ceil
引入于:v1.1
类似于 floor,但返回大于或等于 x 的最小四舍五入数字。如果四舍五入导致溢出(例如,ceiling(255, -1)),则结果未定义。
语法
别名: ceiling
参数
返回值
返回与 x 相同类型的四舍五入数字。 Float* 或 Decimal* 或 (U)Int*
示例
基本用法
负精度
floor
引入于:v1.1
返回小于或等于 x 的最大四舍五入数字,其中四舍五入的数字是 1 / 10 * N 的倍数,或者如果 1 / 10 * N 不精确,则返回适当数据类型的最接近的数字。
整数参数可以使用负数 N 参数进行四舍五入。对于非负数 N,该函数返回 x。
如果四舍五入导致溢出(例如,floor(-128, -1)),则结果未定义。
语法
参数
返回值
返回与 x 相同类型的四舍五入数字。 Float* 或 Decimal* 或 (U)Int*
示例
使用示例
负精度
round
引入于:v1.1
将值四舍五入到指定的位数 N。
- 如果
N > 0,则该函数四舍五入到小数点右侧。 - 如果
N < 0,则该函数四舍五入到小数点左侧。 - 如果
N = 0,则该函数四舍五入到下一个整数。
该函数返回指定顺序的最接近的数字。如果输入值与两个相邻数字的距离相等,则对于 Float* 输入,该函数使用银行家舍入法,对于其他数字类型(Decimal*),则舍入远离零。
如果四舍五入导致溢出(例如,round(255, -1)),则结果未定义。
语法
参数
返回值
返回与 x 相同类型的四舍五入数字。 Float* 或 Decimal* 或 (U)Int*
示例
浮点数输入
十进制数输入
roundAge
引入于:v1.1
获取表示人类年龄的数字,将其与标准年龄范围进行比较,并返回数字落在该范围内的最高或最低值。
- 对于
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
示例
使用示例
roundBankers
引入于: v20.1
将数字四舍五入到指定的十进制位置 N。如果四舍五入的数字介于两个数字之间,则该函数使用一种称为银行家舍入法的方法,这是 IEEE 754 中定义的浮点数的默认舍入方法。
- 如果
N > 0,则该函数四舍五入到小数点右侧 - 如果
N < 0,则该函数四舍五入到小数点左侧 - 如果
N = 0,则该函数四舍五入到下一个整数
- 当四舍五入的数字介于两个数字之间时,它会四舍五入到指定十进制位置的最近的偶数数字。例如:
3.5四舍五入到4,2.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*
示例
基本用法
roundDown
引入于: v20.1
将数字向下四舍五入到指定数组中的元素。如果该值小于下限,则返回下限。
语法
参数
num— 要向下四舍五入的数字。(U)Int*或Decimal*或Float*arr— 将num向下四舍五入到的元素的数组。Array((U)Int*)或Array(Float*)
返回值
返回向下四舍五入到 arr 中元素的数字。如果该值小于最低边界,则返回最低边界。 (U)Int* 或 Float*
示例
使用示例
roundDuration
引入于:v1.1
将数字向下四舍五入到一组常用持续时间中最接近的数字:1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。如果该数字小于一,则返回 0。
语法
参数
返回值
对于 num < 1,返回 0。否则,返回以下值之一:1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000。 UInt16
示例
使用示例
roundToExp2
引入于:v1.1
将数字向下四舍五入到最接近的(整数非负)2 的幂。如果该数字小于一,则返回 0。
语法
参数
返回值
返回向下四舍五入到最接近的(整数非负)2 的幂的 num,否则对于 num < 1 返回 0。 (U)Int* 或 Float*
示例
使用示例
trunc
引入于:v1.1
类似于 floor,但返回绝对值大于或等于 x 的绝对值的四舍五入数字。
语法
别名: truncate
参数
返回值
返回与 x 相同类型的四舍五入数字。 Float* 或 Decimal* 或 (U)Int*
示例
基本用法