Numerische Datenfelder

Diese Datenfelder sind ausschließlich zur Durchführung von Rechenoperationen gedacht. Innerhalb der Symbolzeichenkette der PICTURE-Klausel sind für numerische Datenfelder die folgenden Symbole vorgesehen:

         9          Dieses Symbol darf nur
benutzt werden, um Ziffern zwi-
schen 0 und 9 aufzunehmen. Es
darf maximal 18 mal für 18 Stellen
in der Symbolzeichenkette stehen.
         V          Dieses Symbol kennzeinet
einen fiktiven Dezimalpunkt.
Es darf nur einmal in der Symbol-
zeichnkette vorkommen.
Es belegt keinen Speicherplatz.
         S          Dieses Symbol wird für Felder
benutzt, die negative Inhalte haben
können. Es darf nur einmal vorkommen.
Es belegt keinen Speicherplatz.
Es ist ein Vorzeichensymbol.
         P          Dieses Symbol steht für je eine
Zehnerpotenz. Dem Wert wird diese
Potenz zugrunde gelegt. Diese Symbole
dürfen nur am Anfang oder am Ende der
Symbolzeichenkette nebeneinander stehen.

Natürlich kann man auch hier mit Klammersetzung die Anzahl bestimmen (nicht bei S und V).

Beispiel 1:

MOVE ReFeld1 To ReFeld2.

01 ReFeld1 PIC 9(5).
 2   6   5   4   7 
Der Wert in ReFeld1 beträgt also 26547.

01 ReFeld2 PIC 999V99.
 2   6   5   4   7 
Hier beträgt der Wert von ReFeld2 265,47.

Der Wert in ReFeld2 beträgt, nur durch den Umstand, daß das Rechenfeld in der PICTURE-Klausel anders definiert wurde also lediglich ein Hundertstel des Wertes der in ReFeld1 abgelegt wurde.

...

Beispiel 2:
MOVE ReFeld2 TO ReFeld3.

01 ReFeld2 PIC 999V99.
 2   6   5   4   7 
Der Wert in ReFeld2 beträgt immer noch 265,47.

01 ReFeld3 PIC 999V99PP.
 2   6   5   4   7 
Der Wert von ReFeld3 berägt ((265,47 * 10) * 10). Also wieder 26547.

Würde Hier eine Anweisung lauten:
DIVIDE ReFeld3 BY 100 GIVING ReFeld2.
So wäre der Wert von ReFeld2 wiederrum 265,47.

...

Beispiel 3:
SUBTRACT ReFeld2 FROM ReFeld1 GIVING ReFeld3.

01 ReFeld1 PIC 9(4)V99.
 0   2   6   5   4   7 
minus
01 ReFeld2 PIC 999V99.
 5   3   0   9   4 
gleich
01 ReFeld3 PIC S999V99.
 2   6   5   4   7 

Hier ist der Wert in ReFeld3 negativ, also: - 265,47 (265,47 - 530,94 = -265,47)

...