> Tech > Atteindre les nombres

Atteindre les nombres

Tech - Par iTPro - Publié le 24 juin 2010
email

Il n'est pas toujours facile de dupliquer les fonctions des opérations MOVE pour déplacer des données caractère en données numériques en format libre. Les %DEC (Convert to packed decimal), %INT (Convert to integer) et %UNS (Convert to unsigned integer) convertiront une expression (ou une variable) en une valeur de renvoi

Atteindre les nombres

numérique.
Mais, avant la V5R2, ces fonctions
obligeaient à  fournir une expression
ou variable numérique.
En V5R2, ces fonctions convertiront
une expression caractère ou une
variable, en respectant les règles suivantes
:

  • L’expression doit donner une valeur
    numérique valide, avec ou sans un
    signe (à  gauche ou à  droite)

  • Les blancs sont autorisés dans l’expression,
    mais les données à  virgule
    flottante ne le sont pas.

  • Si la fonction rencontre des données
    numériques invalides, le programme
    génèrera une erreur avec %STATUS=
    105.

  • La fonction %DEC demande deux
    paramètres supplémentaires, qui
    spécifient le nombre de digits et de
    positions décimales souhaitées dans
    le résultat.

Si Source est une chaîne caractère
de neuf octets avec une valeur de
‘23456.78’ et Result est un nombre décimal
packé (11 chiffres, quatre décimales),
Result contiendra une valeur
négative de 0023456.7800 après ce calcul
:

Result = %Dec(Source:11:4);

Pour ajuster (arrondir) le résultat,
utiliser les variantes %DECH, %INTH,
ou %UNSH de ces fonctions de
conversion.
Comme les fonctions de conversion
numérique ne supportent pas les
expressions de données, on ne peut
pas les utiliser directement pour
convertir des dates en nombres. Mais
on peut (en V5R2) imbriquer la fonction
%CHAR dans l’une des fonctions
de conversion numérique (comme le
montre cet exemple) :

Result = %Int(%Char(Source:*ISO0));

Si Source est une donnée native
(type de donnée D) avec une valeur de
Décembre 31, 2005, Result aura une
valeur entière de 20051231 après le calcul.
N’oubliez pas d’inclure le zéro
après le format désiré pour éliminer
les caractères séparateurs.

Téléchargez gratuitement cette ressource

TOP 5 Modernisation & Sécurité des Postes Clients

TOP 5 Modernisation & Sécurité des Postes Clients

Pour aider les entreprises à allier les restrictions liées à la crise et la nécessaire modernisation de leurs outils pour gagner en réactivité, souplesse et sécurité, DIB-France lance une nouvelle offre « Cloud-In-One » combinant simplement IaaS et DaaS dans le Cloud, de façon augmentée.

Tech - Par iTPro - Publié le 24 juin 2010