Lorsque je veux un entier dans un programme RPGLE, quel type de données dois-je choisir? Je parle d'un entier qui ne correspond à aucun champ dans la base de données, juste un entier normal normal - sorte de l'équivalent d'un int
en Java.Quel devrait être mon choix standard de type entier dans RPGLE?
4
A
Répondre
-2
Vous pouvez utiliser les types binaire (nombre entier signé) (B) ou entier (nombre entier non signé) (I). Vous pouvez spécifier la taille avec les valeurs numériques de 3 (1 octet), 5 (2 octets), 10 (4 octets) ou 20 (8 octets). L'équivalent d'un Java int serait 10B.
8
Voici un tableau du guide de référence programmeur RPG ILE:
byte - 3I 0 (1-byte integer)
short- 5I 0 (2-byte integer)
int - 10I 0 (4-byte integer)
long - 20I 0 (8-byte integer)
J'utilise le 10I 0 sous forme de nombre entier le plus souvent. Vous constaterez qu'il est également utilisé dans la plupart de vos appels d'API.
Notez que 10B et 10I ne sont pas exactement équivalents. Le 10B accepterait une valeur de 10 chiffres décimaux, c'est-à-dire jusqu'à 999999999, alors que 10I peut contenir jusqu'à 2147483647. (Techniquement, vous ne pouvez pas avoir un "10B" .Le maximum est 9B.) La seule utilisation réelle du 'B' Le type de données est quand les chiffres fractionnaires sont désirés. Sinon, ils ne devraient probablement jamais être utilisés. En outre, entier est le type de données "I" et est signé; non signé est "U". – user2338816
BTW, 'B' n'indique pas plus un entier que 'P' ou 'S', 'B' indique simplement le format de la mémoire Pour 'B', tout comme 'S' ou 'P', le l'indication "entier" indiquerait des positions décimales (0) Les types de données "I" et "U" ne peuvent pas autoriser autre chose que des positions décimales (0) et sont directement destinés à être utilisés comme des valeurs "entières" – user2338816
@ user2338816 est correct , (B) inaire se réfère à la façon dont les données sont stockées.Il s'agit du RPG III le plus proche d'un type entier.Il ne devrait pas être utilisé aujourd'hui.Au lieu, utilisez les types true (I) nteger et (U) nsigned Integer de RPG IV. , (B) les valeurs inary sont converties en valeurs décimales (P) acquittées pour les opérations mathématiques, puis en (B) inary Alors que les nombres entiers réels sont utilisés directement. ** note: le type binaire utilisé dans les spécifications de fichier DDS est confus. un vrai nombre entier lorsque 0 décimales sont spécifiées et correspond aux types d'indicateurs RPG IV (I) ** – Charles