ソース:
定数は、基数、スケール、モード、および精度の属性を持ちます。 割り当ての場合のように、ターゲットの属性がソースの属性と無関係であるときは、定数はターゲットの属性に変換されます。 ソースとして定数の属性を使用しているコード化算術データの特定のターゲット・タイプの説明を参照してください。
演算式の計算の場合のように中間結果が必要なときは、中間結果の属性は、もとのストリングの代わりに精度 (N,0) の 10 進固定小数点値が使われている場合の中間結果の属性と同じです。(このため、コンパイラーは、定数の属性には関係なく、あらゆる場合に対処できるコードを生成することができます。) この結果、定数の小数部分が失われることがあります。 ソースとして FIXED DECIMAL を使用しているコード化算術データの特定のターゲット・タイプの説明を参照してください。
文字データ項目から中間の 10 進固定小数点への最初の変換では、 値が中間結果のデフォルト・サイズを超える可能性があります。 超える場合、使用可能になっていれば、SIZE 条件が起こります。
複素数を表す文字ストリングが実数のターゲットに割り当てられる場合、ストリングの実数部分だけがターゲットに割り当てられるので、そのストリングの虚数部分が正しい算術文字であるかどうかの検査は行われず、CONVERSION 条件も起こりません。
ソースがヌル・ストリングまたは 1 つ以上のブランクから成るストリングである場合、ターゲットにはゼロの値が割り当てられます。 CONVERSION 条件は起こりません。
ソース・ストリングが、使用可能な精度よりも長いときは、左側のビットが無視されます。 ゼロ以外のビットが失われると、SIZE 条件が起こります。
ヌル・ストリングはゼロの値になります。
ソース:
ソース:
ソース:
ソース:
算術文字 PICTURE データ項目は、10 進固定小数点 または 10 進浮動小数点の値を文字表記で表したものです。 ソースから算術文字 PICTURE への変換に関する以下の説明では、 左端または右端の桁を失わずに割り当てを行うのに 必要なターゲットの属性を示してあります。
ソース:
fixed decimal (1+x+q-y,q) or float decimal (x)
ただし、x>=CEIL(p1/3.32)、y=CEIL(q1/3.32)、かつ q>=y であること。
fixed decimal (x+q-q1,q) or float decimal (x)
ただし、x>=p1 かつ q>=q1 であること。
fixed decimal (p,q) or float decimal (p)
ただし、p>=CEIL(p1/3.32)、かつ p と q の値はソースの指数で 表しうる値の範囲を考慮していること。
fixed decimal (p,q) or float decimal (p)
ただし、p>=p1、かつ p と q の値はソースの指数で表しうる値の範囲を考慮していること。
fixed decimal (1+x+q,q) or float decimal (x)
ただし、x>=ceil(n/3.32) かつ q>=0 であること。
ソース:
コード化算術値から文字ストリングへの変換の規則は、リスト・ディレクティブ出力、データ・ディレクティブ出力、およびキーの評価 (REGIONAL ファイルの場合も) でも使用されます。
p1<q1 または q1<0 の場合は、定数の右方にスケール因数が付加されます。 定数は任意指定の符号付き整数です。 項目の値がゼロであっても、スケール因数が付けられ、下記の構文になります。
F{+|-}nnただし、{+|-}nn の値は -q1 です。
中間結果のストリングの長さは p1+k+3 です。 ただし、k は、q1 の値が入りきるのに必要な桁数です (符号と 英字 F は桁数に数えられません)。
算術値が複素数の場合、中間結果のストリングは、虚数部分が実数部分に連結した形になります。 左側の実数部分はソースの実数部分として生成され、 右側の虚数部分は、符号と英字 I が必ず付加されます。 このようにして生成されたストリングは、2 つのエレメントの間にブランクをはさんでいない複素数式となります。 この中間結果のストリングの長さは次のとおりです。
2*p1+7 for p1>=q1>=0 2*(p1+k)+7 for p1<q1 or q1<0
下の例は、実数および複素数の固定小数点 10 進数値から生成される、 中間結果のストリングを示します。
Precision Value String (5,0) 2947 'bbbb2947' (4,1) -121.7 'b-121.7' (4,-3) -3279000 '-3279F+3' (2,1) 1.2+0.3I 'bbb1.2+0.3I'
w、中間ストリングの長さは p1+8 です。 d、小数桁の数は p1-1 です。 s、有効数字の数は p1 です。
算術値が複素数の場合、中間結果のストリングは、虚数部分が実数部分に連結した形になります。 左側の実数部分はソースの実数部分として生成され、 右側の虚数部分は、符号と英字 I が必ず付加されます。 このようにして生成されたストリングは、2 つのエレメントの間にブランクをはさんでいない複素数式となります。 中間結果のストリングの長さは 2*p+17 です。
下の例は、実数および複素数の浮動小数点 10 進数値から生成される、 中間結果のストリングを示します。
Precision Value String (5) 1735*10**5 'b1.7350E+0008' (5) -.001663 '-1.6630E-0003' (3) 1 'b1.00E+0000' (5) 17.3+1.5I 'b1.7300E+0001+1.5000E+0000I'
ソース:
min(M,(p1-q1))
(p1-q1) が負数またはゼロのときは、ヌル・ビット・ストリングが生成されます。
下の例は、固定小数点 2 進数値から生成される、中間結果のストリングを示します。
Precision Value String (1) 1 '1'B (3) -3 '011'B (4,2) 1.25 '01'B
min(M,CEIL((p1-q1)*3.32))
(p1-q1) が負数またはゼロのときは、ヌル・ビット・ストリングが生成されます。
下の例は、固定小数点 10 進数値から生成される、中間結果のストリングを示します。
Precision Value String (1) 1 '0001'B (2,1) 1.1 '0001'B
min(M,p1)
min(M,ceil(p1*3.32))
最初に、非グラフィック・ソースは、ターゲット: Characterで 説明した規則に従って文字に変換されます。 そのあとで、その結果の文字ストリングが DBCS ストリングに変換されます。
最初に、ワイド文字以外のソースは、ターゲット: Characterで 説明した規則に従って文字に変換されます。 そのあとで、その結果の文字ストリングがワイド文字ストリングに変換されます。