全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1469 2
2019-02-25
%let da = 44.46600008;
%let db = 43500;

data _null_;
    if &da. > &db. then put "A";
    else put "B";
run;

%macro test();
%if &da. > &db. %then %put A;
%else %put B;
%mend;


第一个PUT B,第二个PUT B;


二维码

扫码加我 拉你入群

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

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

全部回复
2019-2-25 12:31:14
在macro definition中,对float的macro variable进行运算要用%sysevalf,所以应该是

%macro test();
%if %sysevalf(&da. > &db.) %then %put A;
%else %put B;
%mend;
%test()

这样就出来B了
二维码

扫码加我 拉你入群

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

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

2019-2-25 12:59:12
西風の碧樹 发表于 2019-2-25 12:31
在macro definition中,对float的macro variable进行运算要用%sysevalf,所以应该是

%macro test();
还真是,谢谢大佬
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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