86. 内置的数字函数


awk 具有用于多种数字、字符串、输入和输出操作的内置函数。我们在这里讨论其中的一些。

int(n) 函数给出给定参数的整数部分。这产生给定 n 的最小整数部分。 n 是任何带或不带浮点的数字。如果您给出一个整数作为参数,则该函数返回相同的数字。对于浮点数,它会截断。

$ awk 'BEGIN{
print int(3.534);
print int(4);
print int(-5.223);
print int(-5);
}'
3
4
-5
-5

log(n) 函数提供给定参数 n 的自然对数。数字 n 必须是正数,否则会抛出错误。

$ awk 'BEGIN{
print log(12);
print log(0);
print log(1);
print log(-1);
}'
2.48491
-inf
0
nan

在上面的输出中,您可以识别出 log(0) 是无穷大,显示为 -inf,而 log(-1) 给出错误 nan (不是数字)。

警告:您可能还会收到以下警告消息:log(-1): awk: cmd. line:4: warning: log: received negative argument -1

sqrt(n) 函数给出给定整数 n 的正平方根。 该函数还需要一个正数,如果您将负数作为参数,它会返回 nan 错误。

$ awk 'BEGIN{
print sqrt(16);
print sqrt(0);
print sqrt(-12);
}'
4
0
nan

exp(n) 函数提供 e 的 n 次方。

$ awk 'BEGIN{
$ awk 'BEGIN{
print exp(123434346);
print exp(0);
print exp(-12);
}'
inf
1
6.14421e-06

注意:在上面的输出中,对于 exp(1234346),它给出的输出为无穷大,因为它超出了范围。

sin(n) 函数给出 n 的正弦值,n 的单位为弧度。

$ awk 'BEGIN {
print sin(90);
print sin(45);
}'
0.893997
0.850904

cos(n) 返回 n 的余弦,其中 n 以弧度为单位。

$ awk 'BEGIN {
print cos(90);
print cos(45);
}'
-0.448074
0.525322

atan2(m,n) 函数给出 m/n 的反正切值(以弧度表示)。

$ awk 'BEGIN { print atan2(30,45) }'
0.588003