数学函数

提供数学功能。

三角函数

下表介绍了所提供的三角函数。
表 1. 三角函数
函数 输入数据类型 输出数据类型 描述
acos(x) 双精度 双精度 反余弦
asin(x) 双精度 双精度 反正弦
atan(x) 双精度 双精度 反切
atan2(x,y) 双精度 双精度 x/y 的反切。
cos(x) 双精度 双精度 余弦
cot(x) 双精度 双精度 余切
degrees(x) 双精度 双精度 将弧度转换为度数。
pi() (无) 双精度 π(周长与直径之比)。
radians(x) 双精度 双精度 将度转换为弧度。
sin(x) 双精度 双精度 正弦波
tan(x) 双精度 双精度 切题。

随机数函数

下表介绍了所提供的随机数功能。
表 2. 随机数数学函数
函数 输入数据类型 输出数据类型 描述 示例 结果
random() (无) 双精度 大于 0 小于 1 的随机值。 random() 0.27116098407244
setseed(x)   (无) 设置 "random()函数的种子值。 setseed(0.548) (返回码)

数字函数

下表介绍了所提供的数字功能。
表 3. 数值函数
函数 输入数据类型 输出数据类型 描述 示例 结果
n! byteint, smallint, integer, bigint int8 整数n 的阶乘:
n×(n-1)×...×1
5! 120
abs(x) 字节整型、小整型、整数、大整型、双精度、实数、数值 x相同 绝对值 abs (-17.4) 17.4
ceil(x) 数值 数值 不小于x的最小整数 ceil (-42.8) -42
dceil(x) 双精度 双精度 不小于x的最小整数 dceil (42.8) 43
dfloor(x) 双精度 双精度 不大于参数的最大整数 floor(42.8) 42
exp(x) 双精度,数值 x相同 指数。 exp(1.0) 2.71828182845905
floor(x) 数值 数值 不大于参数的最大整数 floor(-42.8) -43
fpow(a,b) 实数 实数 a 升为 b 的幂 pow(9.0, 3.0) 729
ln(x) 双精度 双精度值 自然对数 ln(2.0) 0.693147180559945
log(x) 数值 数值 以 10 为底的对数 log(100.0) 2
mod(x,y) 双精度、实数、数值、字节整数、小整数、整数、大整数 如果 x 或 y 的类型是双精度或实数,输出类型就是双精度;否则,如果 x 或 y 是数值型,输出就是数值型;否则,x 和 y 都是整数,输出数据类型就是两种输入数据类型中的较宽类型 计算 x/y 的余数 mod(9,4) 1
numeric_sqrt(x) 数值 数值 平方根 numeric_sqrt(2) 1.4142
pow(a,b) 双精度 dp a 升为 b 的幂 pow(9.0, 3.0) 729
round(x) 双精度,数值 与输入相同 四舍五入 round(42.4) 42
round(v,n) v 是数值,n 是字节整数、小整数、整数、大整数 数值 四舍五入 round(2.4382,2) 2.44
sign(x) 数值 数值 参数的符号(-1,0,+1) sign(-8.4) -1
sqrt(x) 双精度 双精度值 平方根 sqrt(2.0) 1.4142135623731
trunc(x) 双精度,数值 与输入相同 向零截断 trunc(42.8) 42
trunc(v,n) v 是数值,n 是字节整数、小整数、整数、大整数 数值 截断到小数点后 s 位 trunc(2.4382,2) 2.43
注意:"pow函数的结果必须适合FLOAT8(双精度浮点数值)。 一个FLOAT8可以保存正值或负值,其大小最大为1.798x10308,最小为4.941x 10-324(近似值)。

二进制数学函数

下表介绍了所提供的二进制数学函数。
表 4. 二进制数学函数
函数 描述 示例 结果
intNand(x,y) xy 的比特 AND int2and(3,6) 2(小数点)
intNor(x,y) xy 的比特 OR。 int1or(3,6) 7(字节整数)
intNxor(x,y) xy 的比特排他 OR。 int8xor(3,6) 5 (大整型)
intNnot(x) x 的二进制 NOT。 int4xor(3) --4(整数)
intNshl(x,y [,z]) xz的比特 AND(如果指定),然后左移y比特(左移,可选掩码)。 int2shl(3,1,6) 4(小数点)
intNshr(x,y [,z]) xz的比特 AND(如果指定),然后右移y比特(右移,可选掩码)。 int2shr(3,1,6) 1(小数点)
在每个函数中,占位符N代表函数操作和返回的整数数据类型的大小:
1
BYTEINT(别名 INT1)
2
小int2
4
整数
8
bigint(别名int8