Hi,
is there any SAS numeric format, that would return these outputs from these inputs:
INPUT: 1 --- OUTPUT: 1
INPUT: 1.1 --- OUTPUT: 1,1
INPUT: 1.1235 --- OUTPUT: 1,1235
?
Basically: I need some format with decimal comma, but the only one I have found is NUMXw.d. However that gives 1,0000 out of 1. Which is what I dont want.
Many thanks in advance,
V.Herrmann
No format does this afaik. bestx shoud but doesn't.
If you really need a format, you can build it:
proc fcmp outlib=WORK.FUNCTIONS.TEMP;
function bestxx (NUMBER) $ ;
return (translate(cat(NUMBER),',','.'));
endsub;
run;
options cmplib= WORK.FUNCTIONS;
proc format;
value bestxx other=[bestxx()];
run;
data _null_;
A= 1 ;put A= @11 A= bestxx.;
A= 1.1 ;put A= @11 A= bestxx.;
A= 1.1235 ;put A= @11 A= bestxx.;
run;
A=1 A=1
A=1.1 A=1,1
A=1.1235 A=1,1235
I think you want COMMAXw.d
No format does this afaik. bestx shoud but doesn't.
If you really need a format, you can build it:
proc fcmp outlib=WORK.FUNCTIONS.TEMP;
function bestxx (NUMBER) $ ;
return (translate(cat(NUMBER),',','.'));
endsub;
run;
options cmplib= WORK.FUNCTIONS;
proc format;
value bestxx other=[bestxx()];
run;
data _null_;
A= 1 ;put A= @11 A= bestxx.;
A= 1.1 ;put A= @11 A= bestxx.;
A= 1.1235 ;put A= @11 A= bestxx.;
run;
A=1 A=1
A=1.1 A=1,1
A=1.1235 A=1,1235
Thank you for your response!
V.Herrmann
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.