IBM FileNet P8, Version 5.2.1            

Conversion implicite

Une conversion implicite des résultats de l'expression s'effectue au moment de l'exécution pour certaines combinaisons de types de données.

Par exemple, une conversion implicite s'exécute si une expression de type nombre entier a été spécifiée comme valeur initiale pour une zone de données de type flottant. Notez que, dans une expression, il n'y a pas de conversion implicite d'une valeur de chaîne en valeur temporelle ; vous devez utiliser la fonction convert ou la fonction stringtotime pour convertir explicitement une valeur de chaîne en valeur temporelle.

Dans une expression complexe, une conversion implicite a lieu pour que le type de données de l'argument remplisse les exigences d'une fonction ou d'un opérateur. Par exemple, la fonction substr utilise des valeurs entières pour les arguments de la longueur et de la position de départ. Si vous indiquez les valeurs flottantes 2,5 et 1,0 pour ces arguments, elles sont implicitement converties et respectivement remplacées par les valeurs entières 2 et 1, avant le calcul de l'expression.

Une conversion implicite s'effectue au moment de l'exécution pour les combinaisons de types de données suivantes :

Flottant vers entier

Tous les chiffres placés après le séparateur décimal dans le nombre en virgule flottante sont tronqués. Par exemple, si vous indiquez 123,4567 comme valeur initiale d'une zone de données de type entier, la valeur de la zone de données devient 123 au moment de l'initialisation.

Remarque : Il n'y a pas de conversion de flottant vers entier lors de l'initialisation d'une zone de données de tableau. Tous les éléments indiqués pour un tableau d'entiers (comme expression simple ou comme expression complexe) doivent contenir des valeurs entières. Par exemple, si vous indiquez une valeur initiale pour une zone de données de tableau d'entiers, ou que vous utilisez la fonction système affect pour affecter des valeurs à une zone de données de tableau d'entiers, les valeurs valides comprennent {3} et {3 + 5, 7}. En revanche, les valeurs {3.0} et {3 + 5.5, 7} ne sont pas valides.

Entier vers flottant

Un zéro et un séparateur décimal sont ajoutés après le dernier chiffre du nombre entier.

Dans une expression complexe contenant à la fois des valeurs entières et des valeurs flottantes, une conversion implicite s'exécute si un opérateur demande que les valeurs aient le même type de données. Dans ce cas, la valeur entière est convertie en valeur flottante avant le calcul de l'expression. Par exemple, si vous spécifiez 1,5 + 2, la valeur 2 est remplacée par 2,0.

Remarque : Il n'y a pas de conversion d'entier vers flottant lors de l'initialisation d'une zone de données de tableau contenant des expressions simples. Tous les éléments spécifiés comme expressions simples pour un tableau de valeurs flottantes doivent contenir des valeurs flottantes. Par exemple, vous pouvez spécifier {3.0} ou { convert(1, float) }, mais pas {3}.


Last updated: March 2016
bpfe016.htm

© Copyright IBM Corp. 2016.