EdgeScript fournit des fonctions numériques intégrées pour les opérations arithmétiques, les comparaisons et l'arrondi dans les règles de périphérie CDN.
Fonctions arithmétiques
add
Renvoie la somme de deux nombres. Par exemple, add(10, 20) renvoie 30.
Syntaxe
add(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Premier terme de l'addition. |
n2 |
Deuxième terme de l'addition. |
Valeur de retour
Renvoie n1 + n2.
Exemple
n1 = add(10, 20)
say(concat('n1=', n1))
Sortie : n1=30
sub
Renvoie la différence entre deux nombres. Par exemple, sub(10, 20) renvoie -10.
Syntaxe
sub(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Terme dont on soustrait (diminuende). |
n2 |
Terme à soustraire (diminuteur). |
Valeur de retour
Renvoie n1 - n2.
Exemple
n2 = sub(10, 20)
say(concat('n2=', n2))
Sortie : n2=-10
mul
Renvoie le produit de deux nombres. Par exemple, mul(10, 20) renvoie 200.
Syntaxe
mul(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Multiplicande. |
n2 |
Multiplicateur. |
Valeur de retour
Renvoie n1 × n2.
Exemple
n3 = mul(10, 20)
say(concat('n3=', n3))
Sortie : n3=200
div
Renvoie le quotient de deux nombres. Par exemple, div(10, 20) renvoie 0.5.
Syntaxe
div(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Dividende. |
n2 |
Diviseur. |
Valeur de retour
Renvoie n1 / n2.
Exemple
n4 = div(10, 20)
say(concat('n4=', n4))
Sortie : n4=0.5
mod
Renvoie le reste de la division d'un nombre par un autre. Par exemple, mod(35, 20) renvoie 15.
Syntaxe
mod(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Dividende. |
n2 |
Diviseur. |
Valeur de retour
Renvoie n1 % n2.
Exemple
n5 = mod(35, 20)
say(concat('n5=', n5))
Sortie : n5=15
Fonctions de comparaison
Les quatre fonctions de comparaison acceptent deux arguments numériques et renvoient true ou false. Utilisez tonumber() pour convertir les paramètres de requête de type chaîne en nombres avant de les comparer.
gt
Renvoie true si n1 est supérieur à n2 ; sinon, renvoie false. Par exemple, gt(11, 10) renvoie true.
Syntaxe
gt(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Nombre de référence pour la comparaison. |
Valeur de retour
Renvoie true si n1 > n2 ; sinon, renvoie false.
Exemple
if and($arg_num, gt(tonumber($arg_num), 10)) {
say('num > 10')
}
Requête : /path1/path2/file?num=11
Réponse : num > 10
ge
Renvoie true si n1 est supérieur ou égal à n2 ; sinon, renvoie false. Par exemple, ge(10, 10) renvoie true.
Syntaxe
ge(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Nombre de référence pour la comparaison. |
Valeur de retour
Renvoie true si n1 >= n2 ; sinon, renvoie false.
Exemple
if and($arg_num, ge(tonumber($arg_num), 10)) {
say('num >= 10')
}
Requête : /path1/path2/file?num=10
Réponse : num >= 10
lt
Renvoie true si n1 est inférieur à n2 ; sinon, renvoie false. Par exemple, lt(9, 10) renvoie true.
Syntaxe
lt(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Nombre de référence pour la comparaison. |
Valeur de retour
Renvoie true si n1 < n2 ; sinon, renvoie false.
Exemple
if and($arg_num, lt(tonumber($arg_num), 10)) {
say('num < 10')
}
Requête : /path1/path2/file?num=9
Réponse : num < 10
le
Renvoie true si n1 est inférieur ou égal à n2 ; sinon, renvoie false. Par exemple, le(10, 10) renvoie true.
Syntaxe
le(n1, n2)
Paramètres
| Paramètre | Description |
|---|---|
n1 |
Nombre à comparer. |
n2 |
Nombre de référence pour la comparaison. |
Valeur de retour
Renvoie true si n1 <= n2 ; sinon, renvoie false.
Exemple
if and($arg_num, le(tonumber($arg_num), 10)) {
say('num <= 10')
}
Requête : /path1/path2/file?num=10
Réponse : num <= 10
Exemple de comparaison
L'exemple suivant lit le paramètre de requête num depuis l'URL de la requête et l'évalue par rapport à la valeur 10 à l'aide des quatre fonctions de comparaison.
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')
}
| Requête | Réponse |
|---|---|
/path1/path2/file?num=10 |
num <= 10num >= 10 |
/path1/path2/file?num=11 |
num > 10num >= 10 |
/path1/path2/file?num=9 |
num < 10num <= 10 |
Fonctions d'arrondi
floor
Arrondit un nombre à l'entier inférieur le plus proche. Par exemple, floor(9.3) renvoie 9.
Syntaxe
floor(n)
Paramètres
| Paramètre | Description |
|---|---|
n |
Nombre à arrondir vers le bas. |
Valeur de retour
Renvoie le plus grand entier inférieur ou égal à n.
Exemple
n = floor(tonumber($arg_num))
say(concat('floor: ', n))
Requête : /path1/path2/file?num=9.3
Réponse : floor: 9
ceil
Arrondit un nombre à l'entier supérieur le plus proche. Par exemple, ceil(9.3) renvoie 10.
Syntaxe
ceil(n)
Paramètres
| Paramètre | Description |
|---|---|
n |
Nombre à arrondir vers le haut. |
Valeur de retour
Renvoie le plus petit entier supérieur ou égal à n.
Exemple
n = ceil(tonumber($arg_num))
say(concat('ceil: ', n))
Requête : /path1/path2/file?num=9.3
Réponse : ceil: 10
Exemple d'arrondi
L'exemple suivant lit le paramètre de requête num et affiche les valeurs arrondies à l'entier supérieur et à l'entier inférieur.
if $arg_num {
say(concat('ceil: ', ceil(tonumber($arg_num))))
say(concat('floor: ', floor(tonumber($arg_num))))
}
Requête : /path1/path2/file?num=9.3
Réponse : ceil: 10 floor: 9