数值运算符
下表展示了适用于数值类型的数学运算符。
运算符 | 描述 | 示例 | 结果 |
---|---|---|---|
+ |
加法 | 2 + 3 |
5 |
- |
减法 | 2 - 3 |
-1 |
* |
乘法 | 2 * 3 |
6 |
/ |
浮点除法 | 5 / 2 |
2.5 |
// |
除法 | 5 // 2 |
2 |
% |
模数 (余数) | 5 % 4 |
1 |
** |
指数 | 3 ** 4 |
81 |
^ |
指数 ( `**` 的别名) | 3 ^ 4 |
81 |
& |
按位与 | 91 & 15 |
11 |
| |
按位或 | 32 | 3 |
35 |
<< |
按位左移 | 1 << 4 |
16 |
>> |
按位右移 | 8 >> 2 |
2 |
~ |
按位取反 | ~15 |
-16 |
! |
x 的阶乘 |
4! |
24 |
除法和模数运算符
有两种除法运算符:/
和 //
。当至少一个操作数是 FLOAT
或 DOUBLE
类型时,它们是等效的。当两个操作数都是整数时,/
执行浮点除法(例如 5 / 2 = 2.5
),而 //
执行整数除法(例如 5 // 2 = 2
)。
支持的类型
模数、按位、取反和阶乘运算符仅适用于整型数据类型,而其他运算符适用于所有数值数据类型。
数值函数
下表展示了可用的数学函数。
名称 | 描述 |
---|---|
@(x) |
绝对值。如果 x 是列名,则括号可选。 |
abs(x) |
绝对值。 |
acos(x) |
计算 x 的反余弦。 |
acosh(x) |
计算 x 的反双曲余弦。 |
add(x, y) |
x + y 的别名。 |
asin(x) |
计算 x 的反正弦。 |
asinh(x) |
计算 x 的反双曲正弦。 |
atan(x) |
计算 x 的反正切。 |
atanh(x) |
计算 x 的反双曲正切。 |
atan2(y, x) |
计算 (y, x) 的反正切。 |
bit_count(x) |
返回已设置的位数。 |
cbrt(x) |
返回该数的立方根。 |
ceil(x) |
向上舍入数字。 |
ceiling(x) |
向上舍入数字。 ceil 的别名。 |
cos(x) |
计算 x 的余弦。 |
cot(x) |
计算 x 的余切。 |
degrees(x) |
将弧度转换为度数。 |
divide(x, y) |
x // y 的别名。 |
even(x) |
通过远离零的方式,舍入到下一个偶数。 |
exp(x) |
计算 e ** x 。 |
factorial(x) |
参阅 ! 运算符。计算当前整数及其以下所有整数的乘积。 |
fdiv(x, y) |
执行整数除法 (x // y ),但返回 DOUBLE 值。 |
floor(x) |
向下舍入数字。 |
fmod(x, y) |
计算模数值。始终返回 DOUBLE 值。 |
gamma(x) |
x - 1 的阶乘插值。允许小数输入。 |
gcd(x, y) |
计算 x 和 y 的最大公约数。 |
greatest_common_divisor(x, y) |
计算 x 和 y 的最大公约数。 |
greatest(x1, x2, ...) |
选择最大值。 |
isfinite(x) |
如果浮点值为有限,则返回 true,否则返回 false。 |
isinf(x) |
如果浮点值为无限,则返回 true,否则返回 false。 |
isnan(x) |
如果浮点值不是数字,则返回 true,否则返回 false。 |
lcm(x, y) |
计算 x 和 y 的最小公倍数。 |
least_common_multiple(x, y) |
计算 x 和 y 的最小公倍数。 |
least(x1, x2, ...) |
选择最小值。 |
lgamma(x) |
计算 gamma 函数的对数。 |
ln(x) |
计算 x 的自然对数。 |
log(x) |
计算 x 的以 10 为底的对数。 |
log10(x) |
log 的别名。计算 x 的以 10 为底的对数。 |
log2(x) |
计算 x 的以 2 为底的对数。 |
multiply(x, y) |
x * y 的别名。 |
nextafter(x, y) |
返回 x 在 y 方向上的下一个浮点值。 |
pi() |
返回 pi 的值。 |
pow(x, y) |
计算 x 的 y 次幂。 |
power(x, y) |
pow 的别名。计算 x 的 y 次幂。 |
radians(x) |
将度数转换为弧度。 |
random() |
返回范围 0.0 <= x < 1.0 内的随机数 x 。 |
round_even(v NUMERIC, s INTEGER) |
roundbankers(v, s) 的别名。使用“四舍五入到偶数”规则舍入到 s 位小数。允许 s < 0 的值。 |
round(v NUMERIC, s INTEGER) |
舍入到 s 位小数。允许 s < 0 的值。 |
setseed(x) |
设置用于随机函数的种子。 |
sign(x) |
返回 x 的符号,为 -1、0 或 1。 |
signbit(x) |
返回符号位是否已设置。 |
sin(x) |
计算 x 的正弦。 |
sqrt(x) |
返回该数的平方根。 |
subtract(x, y) |
x - y 的别名。 |
tan(x) |
计算 x 的正切。 |
trunc(x) |
截断数字。 |
xor(x, y) |
按位异或。 |
@(x)
描述 | 绝对值。如果 x 是列名,则括号可选。 |
示例 | @(-17.4) |
结果 | 17.4 |
别名 | abs |
abs(x)
描述 | 绝对值。 |
示例 | abs(-17.4) |
结果 | 17.4 |
别名 | @ |
acos(x)
描述 | 计算 x 的反余弦。 |
示例 | acos(0.5) |
结果 | 1.0471975511965976 |
acosh(x)
描述 | 计算 x 的反双曲余弦。 |
示例 | acosh(1.5) |
结果 | 0.9624236501192069 |
add(x, y)
描述 | x + y 的别名。 |
示例 | add(2, 3) |
结果 | 5 |
asin(x)
描述 | 计算 x 的反正弦。 |
示例 | asin(0.5) |
结果 | 0.5235987755982989 |
asinh(x)
描述 | 计算 x 的反双曲正弦。 |
示例 | asinh(0.5) |
结果 | 0.48121182505960347 |
atan(x)
描述 | 计算 x 的反正切。 |
示例 | atan(0.5) |
结果 | 0.4636476090008061 |
atanh(x)
描述 | 计算 x 的反双曲正切。 |
示例 | atanh(0.5) |
结果 | 0.5493061443340549 |
atan2(y, x)
描述 | 计算 (y, x) 的反正切。 |
示例 | atan2(0.5, 0.5) |
结果 | 0.7853981633974483 |
bit_count(x)
描述 | 返回已设置的位数。 |
示例 | bit_count(31) |
结果 | 5 |
cbrt(x)
描述 | 返回该数的立方根。 |
示例 | cbrt(8) |
结果 | 2 |
ceil(x)
描述 | 向上舍入数字。 |
示例 | ceil(17.4) |
结果 | 18 |
ceiling(x)
描述 | 向上舍入数字。 ceil 的别名。 |
示例 | ceiling(17.4) |
结果 | 18 |
cos(x)
描述 | 计算 x 的余弦。 |
示例 | cos(90) |
结果 | -0.4480736161291701 |
cot(x)
描述 | 计算 x 的余切。 |
示例 | cot(0.5) |
结果 | 1.830487721712452 |
degrees(x)
描述 | 将弧度转换为度数。 |
示例 | degrees(pi()) |
结果 | 180 |
divide(x, y)
描述 | x // y 的别名。 |
示例 | divide(5, 2) |
结果 | 2 |
even(x)
描述 | 通过远离零的方式,舍入到下一个偶数。 |
示例 | even(2.9) |
结果 | 4 |
exp(x)
描述 | 计算 e ** x 。 |
示例 | exp(0.693) |
结果 | 2 |
factorial(x)
描述 | 参阅 ! 运算符。计算当前整数及其以下所有整数的乘积。 |
示例 | factorial(4) |
结果 | 24 |
fdiv(x, y)
描述 | 执行整数除法 (x // y ),但返回 DOUBLE 值。 |
示例 | fdiv(5, 2) |
结果 | 2.0 |
floor(x)
描述 | 向下舍入数字。 |
示例 | floor(17.4) |
结果 | 17 |
fmod(x, y)
描述 | 计算模数值。始终返回 DOUBLE 值。 |
示例 | fmod(5, 2) |
结果 | 1.0 |
gamma(x)
描述 | x - 1 的阶乘插值。允许小数输入。 |
示例 | gamma(5.5) |
结果 | 52.34277778455352 |
gcd(x, y)
描述 | 计算 x 和 y 的最大公约数。 |
示例 | gcd(42, 57) |
结果 | 3 |
greatest_common_divisor(x, y)
描述 | 计算 x 和 y 的最大公约数。 |
示例 | greatest_common_divisor(42, 57) |
结果 | 3 |
greatest(x1, x2, ...)
描述 | 选择最大值。 |
示例 | greatest(3, 2, 4, 4) |
结果 | 4 |
isfinite(x)
描述 | 如果浮点值为有限,则返回 true,否则返回 false。 |
示例 | isfinite(5.5) |
结果 | true |
isinf(x)
描述 | 如果浮点值为无限,则返回 true,否则返回 false。 |
示例 | isinf('Infinity'::float) |
结果 | true |
isnan(x)
描述 | 如果浮点值不是数字,则返回 true,否则返回 false。 |
示例 | isnan('NaN'::float) |
结果 | true |
lcm(x, y)
描述 | 计算 x 和 y 的最小公倍数。 |
示例 | lcm(42, 57) |
结果 | 798 |
least_common_multiple(x, y)
描述 | 计算 x 和 y 的最小公倍数。 |
示例 | least_common_multiple(42, 57) |
结果 | 798 |
least(x1, x2, ...)
描述 | 选择最小值。 |
示例 | least(3, 2, 4, 4) |
结果 | 2 |
lgamma(x)
描述 | 计算 gamma 函数的对数。 |
示例 | lgamma(2) |
结果 | 0 |
ln(x)
描述 | 计算 x 的自然对数。 |
示例 | ln(2) |
结果 | 0.693 |
log(x)
描述 | 计算 x 的以 10 为底的对数。 |
示例 | log(100) |
结果 | 2 |
log10(x)
描述 | log 的别名。计算 x 的以 10 为底的对数。 |
示例 | log10(1000) |
结果 | 3 |
log2(x)
描述 | 计算 x 的以 2 为底的对数。 |
示例 | log2(8) |
结果 | 3 |
multiply(x, y)
描述 | x * y 的别名。 |
示例 | multiply(2, 3) |
结果 | 6 |
nextafter(x, y)
描述 | 返回 x 在 y 方向上的下一个浮点值。 |
示例 | nextafter(1::float, 2::float) |
结果 | 1.0000001 |
pi()
描述 | 返回 pi 的值。 |
示例 | pi() |
结果 | 3.141592653589793 |
pow(x, y)
描述 | 计算 x 的 y 次幂。 |
示例 | pow(2, 3) |
结果 | 8 |
power(x, y)
描述 | pow 的别名。计算 x 的 y 次幂。 |
示例 | power(2, 3) |
结果 | 8 |
radians(x)
描述 | 将度数转换为弧度。 |
示例 | radians(90) |
结果 | 1.5707963267948966 |
random()
描述 | 返回范围 0.0 <= x < 1.0 内的随机数 x 。 |
示例 | random() |
结果 | 各种 |
round_even(v NUMERIC, s INTEGER)
描述 | roundbankers(v, s) 的别名。使用“四舍五入到偶数”规则舍入到 s 位小数。允许 s < 0 的值。 |
示例 | round_even(24.5, 0) |
结果 | 24.0 |
round(v NUMERIC, s INTEGER)
描述 | 舍入到 s 位小数。允许 s < 0 的值。 |
示例 | round(42.4332, 2) |
结果 | 42.43 |
setseed(x)
描述 | 设置用于随机函数的种子。 |
示例 | setseed(0.42) |
sign(x)
描述 | 返回 x 的符号,为 -1、0 或 1。 |
示例 | sign(-349) |
结果 | -1 |
signbit(x)
描述 | 返回符号位是否已设置。 |
示例 | signbit(-1.0) |
结果 | true |
sin(x)
描述 | 计算 x 的正弦。 |
示例 | sin(90) |
结果 | 0.8939966636005579 |
sqrt(x)
描述 | 返回该数的平方根。 |
示例 | sqrt(9) |
结果 | 3 |
subtract(x, y)
描述 | x - y 的别名。 |
示例 | subtract(2, 3) |
结果 | -1 |
tan(x)
描述 | 计算 x 的正切。 |
示例 | tan(90) |
结果 | -1.995200412208242 |
trunc(x)
描述 | 截断数字。 |
示例 | trunc(17.4) |
结果 | 17 |
xor(x, y)
描述 | 按位异或。 |
示例 | xor(17, 5) |
结果 | 20 |