86. 内置的数字函数
awk 具有用于多种数字、字符串、输入和输出操作的内置函数。我们在这里讨论其中的一些。
int(n)
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)
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)
sqrt(n)
函数给出给定整数 n 的正平方根。
该函数还需要一个正数,如果您将负数作为参数,它会返回
nan
错误。
$ awk 'BEGIN{
print sqrt(16);
print sqrt(0);
print sqrt(-12);
}'
4
0
nan
exp(n)
exp(n)
函数提供 e
的 n 次方。
$ awk 'BEGIN{
$ awk 'BEGIN{
print exp(123434346);
print exp(0);
print exp(-12);
}'
inf
1
6.14421e-06
sin(n)
sin(n)
函数给出 n 的正弦值,n 的单位为弧度。
$ awk 'BEGIN {
print sin(90);
print sin(45);
}'
0.893997
0.850904
cos(n)
cos(n)
返回 n 的余弦,其中 n 以弧度为单位。
$ awk 'BEGIN {
print cos(90);
print cos(45);
}'
-0.448074
0.525322
atan2(m,n)
atan2(m,n)
函数给出 m/n
的反正切值(以弧度表示)。
$ awk 'BEGIN { print atan2(30,45) }'
0.588003