Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

PRECTYPE

PRECTYPE オプションは、オペランドが FIXED であり、少なくとも 1 つが FIXED BIN である場合に、MULTIPLY、DIVIDE、ADD、および SUBTRACT 組み込み関数の属性をコンパイラーが取り出す方法を決定します。

構文図を読む構文図をスキップする                .-ANS-------.
>>-PRECTYPE--(--+-DECDIGIT--+--)-------------------------------><
                '-DECRESULT-'
 
ANS
PRECTYPE(ANS) を指定すると、BIF( x, y, p ) および BIF( x, y, p, 0 ) の中の値 p は 2 進数の桁数を指定しているものと解釈され、演算は 2 進演算 として実行され、結果の属性は FIXED BIN(p,0) になります。

ただし、BIF( x, y, p, q ) で q が非ゼロである場合、演算は 10 進演算 として実行され、結果の属性は FIXED DEC(t,u) になります (ここで、t および u は、p および q の 10 進の等価値、つまり t = ceil( p / 3.32 ) および u = ceil( q / 3.32 ) です)。 この場合、x、y、p、および q は、事実上、すべて 10 進数に変換されます (これは、x と y だけを変換し、しかも q がゼロであってもそのようにする、次のサブオプション とは対照的です)。 この状態では、コンパイラーは通知メッセージ 1BM1053 を出します。

DECDIGIT
PRECTYPE(DECDIGIT) を指定すると、BIF( x, y, p ) および BIF( x, y, p, 0 ) の中の値 p は 10 進数の桁数を指定しているものと解釈され、演算は 2 進演算 として実行され、結果の属性は FIXED BIN(s) になります (ここで s は、p に対する対応する 2 進の等価値、つまり s = ceil(3.32*p) です)。q が非ゼロである BIF( x, y, p, q ) のインスタンスでは、PRECTYPE(DECDIGIT) を指定した結果は、下記の PRECTYPE(DECRESULT) を指定した場合と同じです。
DECRESULT
PRECTYPE(DECRESULT) を指定すると、BIF( x, y, p ) の中の値 p および BIF( x, y, p, q ) の中の値 p と q は 10 進数の桁数を指定しているものと解釈され、演算は 10 進演算 として実行され、結果の属性は、それぞれ FIXED DEC(p,0) または FIXED DEC(p,q) になります。 結果は、DECIMAL 組み込み関数が x と y に適用された場合に生成されるものと同じになります。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)