%macro test;
%if 1 = 1.0 %then %put Equal; %else %put Unequal; %mend; %test ログ Unequal |
%macro test;
%if (3 / 2) = 1 %then %put Equal; %else %put Unequal; %mend; %test ログ Equal |
・評価する値がすべて整数の場合、「数値」として評価が行われる。
例)「2 < 3」「(1 + 2) = 3」
・評価する値がすべて整数でも、割り算等の式が含まれていて計算結果が小数になる場合、小数部分を破棄してから評価が行われる。
例)「(3 / 2) = 1」… 3 / 2 → 1.5 → 1
・評価する値に小数や文字を含む場合、「文字値」として評価が行われる。
例)「1 < 1.0」「a < b」
小数を扱う場合、以前紹介した「%sysevalf関数」を使います。
http://sas-boubi.blogspot.com/2016/08/11-evalsysevalf.html
%macro test;
%if %sysevalf( 1 = 1.0 ) %then %put Equal; %else %put Unequal; %mend; %test ログ Equal |
%macro test;
%if %sysevalf( (3 / 2) = 1 ) %then %put Equal; %else %put Unequal; %mend; %test ログ Unequal |
0 件のコメント:
コメントを投稿