1

我有一个像&a这样的宏变量,其值为(1234.45)*。我正在尝试替换宏中的()并用号替换它们,因为它是负数。

%let a=(1234.45)

我应用的一些选项是

%macro test1;

%if %substr(&a,1,1) = '(' %then %do; 
        %let b=%substr(&a,1,'-')
%end;

%mend;

%test1
4

1 回答 1

4

这是数字转换,最好在数据步骤中处理。如果出于某种原因您确实需要宏变量,请使用 SYMPUT。

%let a=(1234.45);

data _null_;
x=input("&a.",comma10.);
call symputx("b",x);
run;
%put &=a &=b;
于 2013-07-16T20:33:10.367 回答