EdgeScript proporciona funciones numéricas integradas para operaciones aritméticas, comparaciones y redondeo dentro de las reglas perimetrales de CDN.
Funciones aritméticas
add
Devuelve la suma de dos números. Por ejemplo, add(10, 20) devuelve 30.
Sintaxis
add(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El primer sumando. |
|
|
El segundo sumando. |
Valor devuelto
Devuelve n1 + n2.
Ejemplo
n1 = add(10, 20)
say(concat('n1=', n1))
Salida: n1=30
sub
Devuelve la diferencia entre dos números. Por ejemplo, sub(10, 20) devuelve -10.
Sintaxis
sub(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El minuendo (el número del que se resta). |
|
|
El sustraendo (el número que se resta). |
Valor devuelto
Devuelve n1 - n2.
Ejemplo
n2 = sub(10, 20)
say(concat('n2=', n2))
Salida: n2=-10
mul
Devuelve el producto de dos números. Por ejemplo, mul(10, 20) devuelve 200.
Sintaxis
mul(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El multiplicando. |
|
|
El multiplicador. |
Valor devuelto
Devuelve n1 × n2.
Ejemplo
n3 = mul(10, 20)
say(concat('n3=', n3))
Salida: n3=200
div
Devuelve el cociente de dos números. Por ejemplo, div(10, 20) devuelve 0.5.
Sintaxis
div(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El dividendo. |
|
|
El divisor. |
Valor devuelto
Devuelve n1 / n2.
Ejemplo
n4 = div(10, 20)
say(concat('n4=', n4))
Salida: n4=0.5
mod
Devuelve el residuo de dividir un número entre otro. Por ejemplo, mod(35, 20) devuelve 15.
Sintaxis
mod(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El dividendo. |
|
|
El divisor. |
Valor devuelto
Devuelve n1 % n2.
Ejemplo
n5 = mod(35, 20)
say(concat('n5=', n5))
Salida: n5=15
Funciones de comparación
Las cuatro funciones de comparación aceptan dos argumentos numéricos y devuelven true o false. Utilice tonumber() para convertir los parámetros de consulta de cadena a números antes de compararlos.
gt
Devuelve true si n1 es mayor que n2. En caso contrario, devuelve false. Por ejemplo, gt(11, 10) devuelve true.
Sintaxis
gt(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a comparar. |
|
|
El número contra el cual se compara. |
Valor devuelto
Devuelve true si n1 > n2. De lo contrario, devuelve false.
Ejemplo
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
Solicitud: /path1/path2/file?num=11
Respuesta: num > 10
ge
Devuelve true si n1 es mayor o igual que n2. Si no se cumple esta condición, devuelve false. Por ejemplo, ge(10, 10) devuelve true.
Sintaxis
ge(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a comparar. |
|
|
El número contra el cual se compara. |
Valor devuelto
Devuelve true si n1 >= n2. En caso contrario, devuelve false.
Ejemplo
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
Solicitud: /path1/path2/file?num=10
Respuesta: num >= 10
lt
Devuelve true si n1 es menor que n2. De lo contrario, devuelve false. Por ejemplo, lt(9, 10) devuelve true.
Sintaxis
lt(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a comparar. |
|
|
El número contra el cual se compara. |
Valor devuelto
Devuelve true si n1 < n2. Si no se cumple esta condición, devuelve false.
Ejemplo
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
Solicitud: /path1/path2/file?num=9
Respuesta: num < 10
le
Devuelve true si n1 es menor o igual que n2. En caso contrario, devuelve false. Por ejemplo, le(10, 10) devuelve true.
Sintaxis
le(n1, n2)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a comparar. |
|
|
El número contra el cual se compara. |
Valor devuelto
Devuelve true si n1 <= n2. De lo contrario, devuelve false.
Ejemplo
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
Solicitud: /path1/path2/file?num=10
Respuesta: num <= 10
Ejemplo de comparación
A continuación se muestra un ejemplo que lee el parámetro de consulta num de la URL de la solicitud. Este valor se evalúa contra 10 mediante las cuatro funciones de comparación.
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')
}
|
Solicitud |
Respuesta |
|
|
|
|
|
|
|
|
|
Funciones de redondeo
floor
Redondea un número hacia abajo al entero más cercano. Por ejemplo, floor(9.3) devuelve 9.
Sintaxis
floor(n)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a redondear hacia abajo. |
Valor devuelto
Devuelve el entero más grande que sea menor o igual a n.
Ejemplo
n = floor(tonumber($arg_num))
say(concat('floor: ', n))
Solicitud: /path1/path2/file?num=9.3
Respuesta: floor: 9
ceil
Redondea un número hacia arriba al entero más cercano. Por ejemplo, ceil(9.3) devuelve 10.
Sintaxis
ceil(n)
Parámetros
|
Parámetro |
Descripción |
|
|
El número que se va a redondear hacia arriba. |
Valor devuelto
Devuelve el entero más pequeño que sea mayor o igual a n.
Ejemplo
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))
Solicitud: /path1/path2/file?num=9.3
Respuesta: ceil: 10
Ejemplo de redondeo
El siguiente ejemplo lee el parámetro de consulta num y muestra tanto el valor redondeado hacia arriba como el redondeado hacia abajo.
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}
Solicitud: /path1/path2/file?num=9.3
Respuesta: ceil: 10 floor: 9