ピクチャー文字 S、+、および - は、数字データ内の符号を指定します。 ピクチャー文字 $ (通貨記号) は、 数字データの文字値の中の通貨記号を指定します。 各フィールドでは、1 種類の符号文字しか使用できません。
次に例を示します。
dcl Price picture '$99V.99'; Price = 12.45;
Price の文字値は、'$12.45' です。 Price の算術値は 12.45 です。
文字を通貨記号として指定する場合の詳細については、通貨記号の定義を 参照してください。
次の例を考えてみてください。
dcl Root picture 'S999';
値 50 は '+050' として、 値 0 は '+000' として、 値 -243 は '-243' としてそれぞれ保持されます。
符号および通貨記号は、固定的に使用することも浮動的に使用することもできます。
固定的に使用すると、符号、通貨記号、またはブランクが対応する位置に入ります。 固定文字として使用される S、+、または - は、浮動小数点指定の小数部フィールド内や指数フィールド内の全数字桁の右側または左側に記入することができ、固定小数点の全数字桁の右側または左側に記入することができます。
浮動的に使用すると、先行ゼロが消去されます。 この場合、ピクチャー文字と対応した右端の抑制位置に符号、ブランク、 または通貨記号が含まれます (すべての数字桁が浮動文字で占められ、 データ項目の値がゼロであり、浮動文字が挿入されない場合は除きます)。
浮動文字であることを示すには、ピクチャー・フィールド内にその文字を複数記入します。 浮動文字が浮動する範囲内のすべての数字桁に、その浮動文字を 記入しなければなりません。 浮動文字を記入するときは、同じ浮動文字を連続して記入しなければなりませんが、 任意で、V およびいずれか 1 つの挿入文字 (コンマ、小数点、スラッシュ、または B) を 使用することができます。浮動ストリングの途中またはすぐ後にある挿入文字の スラッシュ、コンマ、または小数点は、浮動ストリングの一部と見なされます。 文字 B が記入されている位置には常に、ブランクが挿入されます。 データ項目の算術値がゼロの場合以外は、V は浮動ストリングを終了します。その場合、V は無視されます。 ピクチャー指定の 1 つのフィールドにつき、浮動ストリングを 1 つだけ記入することができます。 浮動ストリングの前に数字桁があってはならず、ピクチャー文字 * や Z が記入されて いるフィールド内に浮動ストリングがあってはなりません。
浮動文字のストリング内にスラッシュ、コンマ、または小数点がある場合、データ内の対 応する桁には下記のいずれかの文字が入ります。
浮動ストリングに n 個の浮動文字が含まれていると、そのストリングは、n-1 個の条件付き数字桁に対応させられます。 最左端の浮動文字に関連付けられる桁には、その浮動文字かブランクしか入れてはならず、数字を入れることはできません。 1 つのフィールド内で 2 つの異なるピクチャー文字を浮動的に使用することは できません。
浮動ストリング内に V がある場合、V の前にある部分が 1 つのサブフィールドになり、V のあとにあるサブフィールドの全数字桁もまた、第 2 サブフィールドとなる浮動ストリングの一部でなければなりません。
V のあとのすべての数字桁に浮動文字を記入した場合、そのサブフィールドでゼロ消去が行われるのは、整数桁の数字も小数桁の数字もすべてゼロのときだけです。 このとき、編集されたデータ項目はすべてブランクになります (ただし、フィールドの先頭に挿入文字がある場合、その挿入文字は例外です)。 小数桁にゼロ以外の数字があると、小数桁全体がゼロ消去されずに残っています。
ピクチャーへの割り当ての途中または割り当て前に、10 進数の小数桁の数字が切り捨てられ、その結果、ゼロの値になった場合は、切り捨てが行われる前の 10 進数の値に対応する符号がピクチャー内に挿入されます。 したがって、ピクチャー内の符号は、10 進数値がどのように計算されたかに 左右されます。
表 39 に、符号と通貨記号の例を示します。
|
ソース属性 |
ソース・データ (定数フォーマット) |
ピクチャー指定 |
文字値 |
|---|---|---|---|
|
FIXED(5,2) FIXED(5,2) FIXED(5,2) |
123.45 012.00 001.23 |
$999V.99 99$ $ZZZV.99 |
$123.45 12$ $bb1.23 |
|
FIXED(5,2) FIXED(1) FIXED(5,2) |
000.00 0 123.45 |
$ZZZV.ZZ $$$.$$ $$$9V.99 |
bbbbbbb bbbbbb $123.45 |
|
FIXED(5,2) FIXED(2) FIXED(4) |
001.23 12 1234 |
$$$9V.99 $$$,999 $$$,999 |
bb$1.23 bbb$012 b$1,234 |
|
FIXED(5,2) FIXED(5) FIXED(5) |
2.45 214 -4 |
SZZZV.99 SS,SS9 SS,SS9 |
+bb2.45 bb+214 bbbb-4 |
|
FIXED(5,2) FIXED(5,2) FIXED(5,2) |
-123.45 -123.45 123.45 |
+999V.99 -999V.99 999V.99S |
b123.45 -123.45 123.45+ |
|
FIXED(5,2) FIXED(5,2) FIXED(5,2) |
001.23 001.23 -001.23 |
++B+9V.99 - - -9V.99 SSS9V.99 |
bbb+1.23 bbb1.23 bb-1.23 |