反復%DOステートメントの初期値および終了値に小数を利用する方法
[OS] ALL
[リリース] ALL
[キーワード] MACRO, %SYSEVALF
[質問]反復%DOステートメントにおけるインデックス変数の初期値および終了値には、整数もしくは整数を生成するマクロ式を指定する必要があるとマニュアルには記載がありますが、小数を指定することはできないのでしょうか。
[回答]
マニュアルに記載のとおり、反復%DOマクロステートメントにおける初期値および終了値は、整数および整数を生成するマクロ式である必要があります。
以下の例では、初期値を0.5、終了値を0.7とし、0.1ずつインデックス変数の値を増分させる方法を記載しています。 例:マクロプログラムでの使用例 /* 初期値および終了値 */ %LET start = 0.5; %LET end = 0.7; %MACRO test; /* 初期値および終了値に10を掛ける */ %DO i = %SYSEVALF(&start*10) %TO %SYSEVALF(&end*10); %LET newval = %SYSEVALF(&i/10); /* インデックス変数の値を10で除す */ %PUT &newval; /* ログウィンドウへ値を出力 */ %END; %MEND; %test /* マクロの実行 */ 例:出力結果の例 0.5 0.6 0.7 |