La clause PIC 9 – Données numériques
La clause PICTURE 9 (ou PIC 9) définit une zone qui ne peut contenir que des **chiffres** (0 à 9).
C’est la clause la plus utilisée pour représenter :
- Les montants, quantités, codes numériques
- Les dates, numéros de compte, identifiants
- Toutes les données sur lesquelles on veut faire des calculs arithmétiques
Les principales variantes de PIC 9
| Clause | Signification | Utilisation typique | Stockage mémoire |
|---|---|---|---|
PIC 9(n) |
Nombre entier non signé, n chiffres | Code postal, quantités, années | n octets (DISPLAY) |
PIC 9(n)V9(m) |
Nombre décimal avec m décimales | Montants, prix, taux | n + m octets |
PIC S9(n) COMP-3 |
Nombre signé, packed-decimal | Soldes comptables, totaux | ≈ (n+1)/2 octets |
PIC 9(n) COMP |
Nombre binaire (binaire pur) | Compteurs internes, index | 2, 4 ou 8 octets selon n |
Exemple 1 – Entier simple
01 CODE-CLIENT PIC 9(8) VALUE 12345678.
01 QUANTITE PIC 9999 VALUE 0500.
→ Accepte 00000000 à 99999999
→ Tentative de MOVE "ABC" TO CODE-CLIENT → erreur
Exemple 2 – Nombre décimal (virgule implicite)
01 PRIX-UNITAIRE PIC 9(5)V99 VALUE 12345.67.
01 TOTAL-HT PIC 9(7)V99 VALUE 0000000.00.
→ La position de la virgule est **implicite** (pas stockée en mémoire)
→ Valeur interne : 1234567 (pour 12345.67)
Exemple 3 – Nombre signé (avec signe)
01 SOLDE-COMPTE PIC S9(7)V99 COMP-3.
01 DETTE PIC S999V99 VALUE -12.50.
→ Le signe est stocké dans le dernier demi-octet (packed-decimal)
→ COMP-3 = format le plus économique pour les fichiers et bases de données
Exemple 4 – Compteur binaire
01 COMPTEUR-LIGNES PIC 9(5) COMP VALUE ZERO.
→ Utilisé pour des boucles ou index internes
→ Plus rapide pour les calculs que le format DISPLAY
Exemple 5 – Format d’édition (affichage)
01 MONTANT-AFFICHE PIC ZZZ,ZZZ,ZZ9.99 VALUE 0001234.56.
→ Z = remplace les zéros non significatifs par des espaces
→ Résultat affiché : " 1,234.56"
PIC 9
- Ne pas mettre de virgule ou point dans la clause
PIC(sauf V pour virgule implicite) - Oublier le
Spour les nombres négatifs → ils deviennent positifs ! - Utiliser
PIC 9pour des codes avec tirets ou lettres → utiliserPIC Xà la place - Ne pas aligner la taille quand on
MOVEentre zones numériques → risque de troncature
En résumé : PIC 9 est la base de tout ce qui est calculable en COBOL. Choisissez toujours le format le plus adapté (DISPLAY, COMP-3, COMP) selon l’usage : stockage, performance, calculs, affichage.