全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学习笔记1.0
8264 0
2013-01-28
这个宏运行错误是 局域变量和全局变量的缘故吗 求高手对宏详解这个宏运行错误是 局域变量和全局变量的缘故吗??求高手对宏详解
%let a=2134.45;
%let b=-45000;
%macro t;
%let x=%sysevalf(&a+&b);
%put x= &x;
%if &x>0 %then %do;
%put fushu x= &x;
%end;
%else %do;
%put zehng x= &x;
%end;
%mend t;
%t;



jingju11的解答:
%if %sysevalf(&x>0) %then %do;


webgu的解答:
宏的本质只是文本,不会对数字字符进行自动运算。要将其视为数字计算要用%evalf or %sysevalf.
不过在DATA 步里,会自动运算比较。

%let a=2134.45;
%let b=-45000;
%let x=%sysevalf(&a+&b);
data _null_;
   if &x>0 then  put  "zhengsshu   x= &x" ;
   else  put "fushu x= &x"   ;
run;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群