4

既に存在する他のマクロ変数から新しいマクロ変数を作成したいと考えています。

call symput%eval、およびの複数のバリエーションを試しinputましたが、役に立ちません...

d3/30=.10と評価したいと思います。


*****  taken directly from the sas help files...  ;

%let a=1+2;
%let b=10*3;
%let c=5/3;
%let eval_a=%eval(&a);
%let eval_b=%eval(&b);
%let eval_c=%eval(&c);

%put &a is &eval_a;
%put &b is &eval_b;
%put &c is &eval_c; * not sure why this evaluates to 1, but I'm sure it's documented somewhere... ;


*****  This evaluates to 0...

%let d = %eval(%eval(&a) / %eval(&b)) ; 

%put &d ;

本当にありがとう...

4

1 に答える 1

4

%eval は整数のみを返します。10 進数を取得するには、%sysevalf を使用する必要があります。

于 2013-04-08T15:39:48.770 に答える