4D v16.3Num |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Num
|
Num ( expression {; séparateur} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
expression | Chaîne, Booléen, Entier long |
![]() |
Chaîne à convertir en numérique ou Booléen à convertir en 0 ou 1 ou Expression numérique | |||||
séparateur | Chaîne |
![]() |
Séparateur décimal | |||||
Résultat | Réel |
![]() |
Valeur numérique du paramètre expression | |||||
La fonction Num retourne sous forme de numérique l'expression de type chaîne, Booléen ou numérique que vous avez passée dans le paramètre expression. Le paramètre facultatif séparateur permet de désigner un séparateur décimal pour l’évaluation des expressions de type chaîne.
Expressions de type chaîne
Si expression ne contient que des caractères alphabétiques, Num retourne zéro. Si expression contient des caractères alphabétiques et des caractères numériques, Num ignore les caractères alphabétiques. Ainsi, Num transformera la chaîne "a1b2c3" en nombre 123.
Il existe trois caractères réservés que Num traite de manière particulière. Il s'agit du séparateur décimal tel que défini dans le système (si le paramètre séparateur n'est pas passé), du tiret (-) et du e (ou E). Ils seront interprétés en tant que caractères de formatage des nombres :
Le paramètre séparateur permet de désigner un séparateur décimal personnalisé pour l’évaluation de expression. Lorsque la chaîne à évaluer est exprimée avec un séparateur décimal différent du séparateur système, la commande retourne un résultat incorrect. Le paramètre séparateur permet dans ce cas d’obtenir une évaluation correcte. Lorsque ce paramètre est passé, la commande ne tient pas compte du séparateur décimal système. Vous pouvez passer un ou plusieurs caractères.
Note : La commande LIRE FORMATAGE SYSTEME permet de connaître le séparateur décimal courant ainsi que plusieurs autres paramètres système régionaux.
Expressions de type Booléen
Si vous passez une expression booléenne dans le paramètre expression, Num retourne 1 si expression est VRAI, sinon Num retourne 0.
Expressions de type numérique
Si vous passez une expression numérique dans le paramètre expression, Num retourne telle quelle la valeur passée dans le paramètre expression. Ce fonctionnement est utile notamment dans le cadre d’une programmation générique utilisant des pointeurs.
L'exemple suivant illustre la manière dont Num fonctionne lorsqu'un argument de type chaîne lui est passé. A chaque ligne, un numérique est assigné à la variable vRésultat. Les commentaires décrivent les résultats :
vRésultat:=Num("ABCD") ` vRésultat vaut 0
vRésultat:=Num("A1B2C3") ` vRésultat vaut 123
vRésultat:=Num("123") ` vRésultat vaut 123
vRésultat:=Num("123,4") ` vRésultat vaut 123,4
vRésultat:=Num("-123") ` vRésultat vaut -123
vRésultat:=Num("-123e2") ` vRésultat vaut -12300
Dans l'exemple suivant, [Client]Dette est comparé à la valeur 1000. La fonction Num appliquée à cette comparaison retourne 0 ou 1. La multiplication d'une chaîne par 0 ou 1 retourne soit la chaîne, soit une chaîne vide. En définitive, le champ [Client]Risque reçoit la valeur “Acceptable” ou “Inacceptable” :
` Si le client a des dettes inférieures à 1000, le risque est acceptable.
` Si le client a des dettes supérieures à 1000, le risque est inacceptable.
[Client]Risque:=("Acceptable"*Num([Client]Dettes<1000))+("Inacceptable"*Num([Client]Dettes>=1000))
Cet exemple compare les résultats obtenus en fonction du séparateur “courant” :
$lachaine:="33,333.33"
$lenum:=Num($lachaine)
` par défaut, $lenum vaut 33,33333 sur un système français
$lenum:=Num($lachaine;".")
` $lenum vaut bien 33 333,33 quel que soit le système
Chaine
LIRE FORMATAGE SYSTEME
Opérateurs logiques
Opérateurs sur les chaînes
Produit : 4D
Thème : Chaînes de caractères
Numéro :
11
Nom intl. : Num
Modifié : 4D v11 SQL
4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)