2016年8月10日水曜日

マクロ言語入門11:演算評価 【%EVAL、%SYSEVALF】



%EVAL関数」と「%SYSEVALF関数」を紹介していきます。





以下のプログラムと実行ログをご覧ください。

%put  10 + 200 ;

ログ
10 + 200

 「10 + 200」 を計算して 「210」 とログに出力されることを期待しましたが、実際は文字がそのまま返されています。
このような場合、%EVAL関数や%SYSEVALF関数が使えます。



構文


  %EVAL(   演算内容   )


・ 中に書かれた演算を実行する。ただし整数のみ。
・ また、割り算等で結果が小数になる場合は、小数部分が破棄されてしまう。



  %SYSEVALF(   演算内容   )


・ 中に書かれた演算を実行する。浮動小数点の演算が可能。







例①
%put %eval(10 + 200) ;
%put %eval(1 < 2) ;

ログ
210
1

補足 ・・・ 「1 < 2」 のような論理式の場合、論理式が真(true) の場合 「1」が返され、偽(false) の場合 「0」が返されます。


例②
%put %sysevalf(0.1 + 0.2) ;
%put %sysevalf(0.1 < 0.2) ;

ログ
0.3
1




記事一覧

1. マクロ変数とは
2. マクロの登録と実行
3. 定位置パラメータ
4. キーワードパラメータ
5. クォート処理
6. クォート処理2
7. ループ処理
8. 条件分岐処理
9. ドット
10. &&
11. 演算評価
12. 補足



0 件のコメント:

コメントを投稿