Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

変換エラー

dcl Ctlno char(8) init('0');
do I=1 to 100;
Ctlno=Ctlno+1;

·
·
·
end;

この例では、システムで許可される FIXED DECIMAL の精度の最大値に 15 が使用されました。 この例では、下記の一連の処理が行われるので、CONVERSION 条件が起こります。

  1. CTLNO の初期値、すなわち '0bbbbbbb' は FIXED DECIMAL(15,0) に 変換されます。
  2. 属性 FIXED DECIMAL(1,0) を持つ 10 進定数 1 が追加されます。追加の規則に従って、結果の精度は (16,0) です。
  3. 次に、この値を再び CTLNO に割り当てるために、この値の長さ 18 の文字ストリングに変換されます。
  4. CTLNO の長さは 8 なので、割り当てによって右側が切り捨てられ、CTLNO の最終的な値はブランクだけになります。 2 回目のループでは、この値を算術タイプに正しく変換できません。

Terms of use | Feedback

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