我有一个像& a 这样的宏变量,其值为(1234.45)* 。我正在尝试从宏中替换(和),并将其替换为否定标记,因为它是负数。
%let a=(1234.45)
我申请的一些选项是
%macro test1;
%if %substr(&a,1,1) = '(' %then %do;
%let b=%substr(&a,1,'-')
%end;
%mend;
%test1
答案 0 :(得分:4)
这是数字转换,最好在数据步骤中处理。如果由于某种原因你确实需要一个宏变量,请使用SYMPUT。
%let a=(1234.45);
data _null_;
x=input("&a.",comma10.);
call symputx("b",x);
run;
%put &=a &=b;