All macro variables are stored as strings. What behavour (error message etc) are you seeing that makes it numeric.
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a002293823.htm
You can see from this log that if we try to store a numeric in a macro var it is converted to char by SAS.
1 data null;
2 call symput('currmonS',put(date(),yymmn6.));
3 call symput('currmonN',date());
4 run;
NOTE: Numeric values have been converted to character values at the places given by:
(Line) : (Column).
3:28
NOTE: The data set WORK.NULL has 1 observations and 0 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.01 seconds
.
... View more