%EVAL() is for integer calculations primarily or condition checks. For functions you want %SYSFUNC() which you need to wrap around each SAS function to differentiate it from text.
You can use %SYSEVALF() to do decimal math.
Additionally,
%eval (and %sysevalf) can be used for boolean evaluations.
%sysevalf can interpret SAS dates strings correctly.
%put => %eval(%sysfunc(findw(bb ba,ba))>0);
%put => %sysevalf('01jan1990'd);
=> 1 => 10958
... View more