%let vc = 12025;
理想输出(格式为comma
)为12,025
;
但%put %sysfunc(put(&vc,comma6.))
似乎无效。错误如下。
ERROR: The PUT function referenced in the %SYSFUNC or %QSYSFUNC macro function is not found.
答案 0 :(得分:7)
PUT
功能不适用%SYSFUNC
,但您可以使用PUTN
表示数值,或PUTC
表示字符。
尝试:
%put %sysfunc(putn(&vc,comma6.));
答案 1 :(得分:2)
使用putn()
函数格式化%sysfunc()
返回的值的替代方法是使用%sysfunc()
这个鲜为人知的第二个参数,如下所示:
%let vc = 12025;
%put %sysfunc(sum(&vc),comma6.);
第二个参数将格式应用于%sysfunc()
正在调用的函数返回的结果。在上面的例子中,我只是自己对一个数字求和,它实际上只返回数字。如果是字符值,我可以使用cats()
函数。
值得注意的是,如果您想要执行以下操作,它会简化代码:
%put %sysfunc(putn(%sysfunc(date()),date9.));
成为:
%put %sysfunc(date(),date9.);