ピクチャー文字のコンマ (,)、小数点 (.)、スラッシュ (/)、および ブランク (B) を指定すると、数字データ内の対応する位置にその文字が挿入されます。 これらの文字は、数字桁や文字桁を示すものではなく、数字や文字の間に 挿入されます。 ただし、文字値の中では、いずれの文字も、その文字が消去されるか否かに関係なく 1 つの文字桁を表しています。 コンマ、小数点、およびスラッシュは条件付き挿入文字であり、一連のゼロ抑制文字の間にあるときには消去されることもあります。 ブランクは無条件挿入文字であり、 対応する位置にブランクを常に挿入することを指定します。
挿入文字は、文字値にだけ適用され、 そのデータ項目の算術値に関してはなにも指定しません。 挿入文字を使用しても、固定小数点 10 進数のピクチャー指定内で小数点 (または 10 進コンマ) 位置合わせを指定したことにはなりませんし、挿入文字はデータ項目の算術値の一部ではありません。 小数点位置合わせは、ピクチャー文字 V および F によって制御されます。
上記以外の場合にゼロ消去が行われるときは、コンマ、小数点、またはスラッ シュ挿入文字は、その前にある文字と等しくゼロ抑制文字と見なされます。
小数点、コンマ、またはスラッシュを V と一緒に使用すれば、固定小数点数 (または浮動小数点数) の整数部分の終わりと小数部分の始まりを区切る位置に、小数点 (またはコンマ、スラッシュ) を挿入できます。この機能は、V を使用しても小数点の印刷ができないので、印刷時に必要になる場合があります。 小数点は、V の直前または直後になければなりません。小数点が V の直前にある 場合は、すべての小数桁が有効な場合でも、未消去の数字が V の左に現れる 場合にのみ挿入されます。 V のすぐあとにある小数点は、V の右側にあるすべての数字が消去されたときに消去されますが、小数桁に消去されていない数字がある (間にゼロがあってもよい) ときは挿入されます。
次に各国で使用されている 10 進数の規則の例を示します。
declare A picture 'Z,ZZZ,ZZZV.99',
B picture 'Z.ZZZ.ZZZV,99',
C picture 'ZBZZZBZZZV,99';
A,B,C = 1234;
A,B,C = 1234.00;
A、B、C はそれぞれ 9 桁の数を表し、 7 番目と 8 番目の数字の間に小数点または小数コンマが想定されています。 小数点挿入文字によって指定された実際の小数点は、算術値の一部ではありませんが、 文字値ではその一部です。 2 つの代入ステートメントは、次のように A、B、C に同じ文字値を割り当てます。
1,234.00 /* value of A */ 1.234,00 /* value of B */ 1 234,00 /* value of C */
次の例では、割り当て中に小数点の位置合わせが文字 V で行われます。 Rate が印刷される場合、'762.00' のように 示されますが、その算術値は 7.6200 です。
declare Rate picture '9V99.99'; Rate = 7.62;
表 38 に、挿入文字の例を示します。
|
ソース属性 |
ソース・データ (定数フォーマット) |
ピクチャー指定 |
文字値 |
|---|---|---|---|
|
FIXED(4) FIXED(6,2) FIXED(4,2) |
1234 1234.56 12.34 |
9,999 9,999V.99 ZZ.VZZ |
1,234 1,234.56 12.34 |
|
FIXED(4,2) FIXED(4,2) FIXED(4,2) |
00.03 00.03 12.34 |
ZZ.VZZ ZZV.ZZ ZZV.ZZ |
bbb03 bb.03 12.34 |
|
FIXED(4,2) FIXED(9,2) FIXED(7,2) |
00.00 1234567.89 12345.67 |
ZZV.ZZ 9,999,999.V99 **,999V.99 |
bbbbb 1,234,567.89 12,345.67 |
|
FIXED(7,2) FIXED(9,2) FIXED(6) |
00123.45 1234567.89 123456 |
**,999V.99 9.999.999V,99 99/99/99 |
***123.45 1.234.567,89 12/34/56 |
|
FIXED(6) FIXED(6) FIXED(6) |
123456 001234 000012 |
99.9/99.9 ZZ/ZZ/ZZ ZZ/ZZ/ZZ |
12.3/45.6 bbb12/34 bbbbbb12 |
|
FIXED(6) FIXED(6) FIXED(6) |
000000 000000 000000 |
ZZ/ZZ/ZZ **/**/** **B**B** |
bbbbbbbb ******** **b**b** |
|
FIXED(6) FIXED(3) FIXED(2) |
123456 123 12 |
99B99B99 9BB9BB9 9BB/9BB |
12b34b56 1bb2bb3 1bb/2bb |