数値ピクチャ データの使用に関する規則

数値ピクチャ データの使用を使用する際の規則は次のとおりです。

  1. 数値ピクチャには、符号文字 (「+」、「–」、「S」、「T」、「I」、「R」、「CR」、「DB」) を複数含めることはできません。ただし、該当するすべての符号文字が浮動文字列の一部である場合は除きます。
  2. 数値ピクチャ変数に値 0 が割り当てられた場合、数値ピクチャに「9」が少なくとも 1 つ含まれていないと、使用されているゼロ抑制文字に応じて空白またはアスタリスク (*) で値全体が埋められます。
  3. 数値ピクチャ変数に 0 以外の値が割り当てられた場合、「V」の後にゼロ抑制文字または浮動文字列の一部があると、「V」でゼロ抑制が停止します。次に例を示します。
    DECLARE A PICTURE 'ZZZV.ZZ'; 
    DECLARE B PICTURE '***V.**CR';

    この例で、A および B に値 .01 が割り当てられた場合、生成される値は boxes および .boxes になります。A および B に値 0 が割り当てられた場合は、boxes および .******** になります。

  4. 「V」が指定されていない場合、暗黙的に数値ピクチャの右端に「V」があるものと想定されます。
  5. 「9」、「Z」、または「*」の各文字は、精度の桁と見なされます。浮動文字列に含まれる「S」、「+」、「–」、または「$」の各文字は、1 文字目を除き、精度の桁と見なされます。「V」に続く精度の桁はすべて小数部の桁になります。次に例を示します。
    DECLARE A PICTURE 'ZZZV.ZZ' 
    DECLARE B PICTURE '---V.z--'

    この例では、A の精度は (5,2) で、B の精度は (4,2) です。

  6. 数値ピクチャ変数には、ピクチャに「CR」、「DB」、「-」、または「S」が含まれている場合を除き、負の値を割り当てることはできません。「S」、「+」、「–」、「T」、「I」、「R」、「CR」、または「DB」が含まれていない数値ピクチャ変数に負の値が割り当てられると、エラー状態が通知されます。
  7. 数値ピクチャ変数に割り当てられた値は、同等の精度の固定小数点変数に割り当てられた場合と同じように「V」で切り捨てられて揃えられます。
  8. 数値ピクチャ値は、算術値を必要とするコンテキストで使用された場合や関係演算子とともに使用された場合は、数値ピクチャに応じた精度 p および q の固定小数点値に変換されます。
  9. 数値ピクチャ値は、文字列変数に割り当てられた場合、および文字列の作用対象を必要とする組み込み関数で連結演算子 or の作用対象として使用された場合に限り、文字列値として扱われます。それ以外のコンテキストでは、数値ピクチャ値は固定小数点値として扱われます。

次に、ピクチャ形式の出力の例を示します。

データ ピクチャ 出力
1 12345.60 $SSSSSSSSV.99 $ boxes +12345.60
2 1.23 **********V.99 .********1.23
3 1.23 ZZZZZZZZZZV.99S boxes1.23
4 1234.56 Z.ZZZ ZZZV,99 boxes1.234,56
5 11011111 9999B9999 1101 boxes1111
6 011335 **/**/** *1/13/35
7 1234567890 999999999V.99 234567890.00
8 .33 ZV.ZZ box.33
9 .75 ZV.ZZ box.75
10 1234567.89 $999,999,999V.99DB $001,234,567.89
11 -1234567.89 $999,999,999V.99CR $001,234,567.89CR
12 1023 YYYYY 1 23

例 1 の「$」は 1 つだけであるため静的な文字であり、「S」は小数点まで続いているため浮動文字です。

例 2、3、および 4 の文字「Z」と「*」は、ゼロ抑制文字です。アスタリスクは 0 または空白になるすべての箇所に出力され、「Z」は空白と置き換わります。

例 5 の挿入文字「B」は、空白文字 (空白) になります。ゼロを抑制しているゼロ抑制文字のフィールドでないかぎり、数値ピクチャ形式で「B」が記述されたすべての箇所に空白が挿入されます。

例 7 の文字「9」は、その箇所に数字を出力します。0 から 9 までのすべての数字が出力されますが、ここでは先頭の 1 は切り捨てられています。

例 8 および 9 の文字「V」は、その箇所で抑制をオフにします。「V」の後はすべての文字が出力されます。例 8 では、「V」が小数点の前にないため、小数点がオンではなくオフになります。

例 10 および 11 は、「CR」または「DB」のいずれかを含む数値ピクチャに正および負のデータを適用した結果を示しています。