将宏变量格式化为逗号6
format macro variable to comma6
%让 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.
PUT
函数不适用于 %SYSFUNC
,但是您可以使用 PUTN
表示数值,或 PUTC
表示字符。
尝试:
%put %sysfunc(putn(&vc,comma6.));
使用 putn()
函数格式化 %sysfunc()
返回值的替代方法是使用 %sysfunc()
鲜为人知的第二个参数,如下所示:
%let vc = 12025;
%put %sysfunc(sum(&vc),comma6.);
第二个参数将格式应用到调用函数 %sysfunc()
返回的结果。在上面的示例中,我只是对一个数字本身求和,实际上只是 returns 这个数字。如果它是一个字符值,我可以使用 cats()
函数。
值得注意的是,如果您想执行以下操作,它将简化代码:
%put %sysfunc(putn(%sysfunc(date()),date9.));
变成:
%put %sysfunc(date(),date9.);
%让 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.
PUT
函数不适用于 %SYSFUNC
,但是您可以使用 PUTN
表示数值,或 PUTC
表示字符。
尝试:
%put %sysfunc(putn(&vc,comma6.));
使用 putn()
函数格式化 %sysfunc()
返回值的替代方法是使用 %sysfunc()
鲜为人知的第二个参数,如下所示:
%let vc = 12025;
%put %sysfunc(sum(&vc),comma6.);
第二个参数将格式应用到调用函数 %sysfunc()
返回的结果。在上面的示例中,我只是对一个数字本身求和,实际上只是 returns 这个数字。如果它是一个字符值,我可以使用 cats()
函数。
值得注意的是,如果您想执行以下操作,它将简化代码:
%put %sysfunc(putn(%sysfunc(date()),date9.));
变成:
%put %sysfunc(date(),date9.);