O EdgeScript oferece funções numéricas integradas para operações aritméticas, comparações e arredondamento em regras de borda da CDN.
Funções aritméticas
add
Retorna a soma de dois números. Por exemplo, add(10, 20) retorna 30.
Sintaxe
add(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Primeiro operando da soma. |
|
|
Segundo operando da soma. |
Valor retornado
Retorna n1 + n2.
Exemplo
n1 = add(10, 20)
say(concat('n1=', n1))
Saída: n1=30
sub
Retorna a diferença entre dois números. Por exemplo, sub(10, 20) retorna -10.
Sintaxe
sub(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Minuendo (valor base da subtração). |
|
|
Subtraendo (valor a subtrair). |
Valor retornado
Retorna n1 - n2.
Exemplo
n2 = sub(10, 20)
say(concat('n2=', n2))
Saída: n2=-10
mul
Retorna o produto de dois números. Por exemplo, mul(10, 20) retorna 200.
Sintaxe
mul(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Multiplicando. |
|
|
Multiplicador. |
Valor retornado
Retorna n1 × n2.
Exemplo
n3 = mul(10, 20)
say(concat('n3=', n3))
Saída: n3=200
div
Retorna o quociente da divisão de dois números. Por exemplo, div(10, 20) retorna 0.5.
Sintaxe
div(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Dividendo. |
|
|
Divisor. |
Valor retornado
Retorna n1 / n2.
Exemplo
n4 = div(10, 20)
say(concat('n4=', n4))
Saída: n4=0.5
mod
Retorna o resto da divisão de um número por outro. Por exemplo, mod(35, 20) retorna 15.
Sintaxe
mod(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Dividendo. |
|
|
Divisor. |
Valor retornado
Retorna n1 % n2.
Exemplo
n5 = mod(35, 20)
say(concat('n5=', n5))
Saída: n5=15
Funções de comparação
As quatro funções de comparação aceitam dois argumentos numéricos e retornam true ou false. Use tonumber() para converter parâmetros de consulta do tipo string em números antes de compará-los.
gt
Retorna true se n1 for maior que n2; caso contrário, retorna false. Por exemplo, gt(11, 10) retorna true.
Sintaxe
gt(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a comparar. |
|
|
Valor de referência para comparação. |
Valor retornado
Retorna true se n1 > n2; caso contrário, retorna false.
Exemplo
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
Requisição: /path1/path2/file?num=11
Resposta: num > 10
ge
Retorna true se n1 for maior ou igual a n2; caso contrário, retorna false. Por exemplo, ge(10, 10) retorna true.
Sintaxe
ge(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a comparar. |
|
|
Valor de referência para comparação. |
Valor retornado
Retorna true se n1 >= n2; caso contrário, retorna false.
Exemplo
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
Requisição: /path1/path2/file?num=10
Resposta: num >= 10
lt
Retorna true se n1 for menor que n2; caso contrário, retorna false. Por exemplo, lt(9, 10) retorna true.
Sintaxe
lt(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a comparar. |
|
|
Valor de referência para comparação. |
Valor retornado
Retorna true se n1 < n2; caso contrário, retorna false.
Exemplo
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
Requisição: /path1/path2/file?num=9
Resposta: num < 10
le
Retorna true se n1 for menor ou igual a n2; caso contrário, retorna false. Por exemplo, le(10, 10) retorna true.
Sintaxe
le(n1, n2)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a comparar. |
|
|
Valor de referência para comparação. |
Valor retornado
Retorna true se n1 <= n2; caso contrário, retorna false.
Exemplo
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
Requisição: /path1/path2/file?num=10
Resposta: num <= 10
Exemplo de comparação
O exemplo a seguir lê o parâmetro de consulta num da URL da requisição e o avalia em relação ao valor 10 usando as quatro funções de comparação.
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
|
Requisição |
Resposta |
|
|
|
|
|
|
|
|
|
Funções de arredondamento
floor
Arredonda um número para baixo até o inteiro mais próximo. Por exemplo, floor(9.3) retorna 9.
Sintaxe
floor(n)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a arredondar para baixo. |
Valor retornado
Retorna o maior número inteiro menor ou igual a n.
Exemplo
n = floor(tonumber($arg_num))
say(concat('floor: ', n))
Requisição: /path1/path2/file?num=9.3
Resposta: floor: 9
ceil
Arredonda um número para cima até o inteiro mais próximo. Por exemplo, ceil(9.3) retorna 10.
Sintaxe
ceil(n)
Parâmetros
|
Parâmetro |
Descrição |
|
|
Número a arredondar para cima. |
Valor retornado
Retorna o menor número inteiro maior ou igual a n.
Exemplo
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))
Requisição: /path1/path2/file?num=9.3
Resposta: ceil: 10
Exemplo de arredondamento
O exemplo abaixo lê o parâmetro de consulta num e exibe tanto o valor arredondado para cima quanto para baixo.
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}
Requisição: /path1/path2/file?num=9.3
Resposta: ceil: 10 floor: 9