将宏变量格式化为逗号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.);