BookmarkSubscribeRSS Feed
csetzkorn
Lapis Lazuli | Level 10

This is a very simple one. I try to add 2 macro variables, which are initialized from SAS EG prompts (Number1 and Number2). I currently use this code it should work for non integer number):

 

%let Result = %sysevalf(&Number1.,integer) + %sysevalf(&Number2.,integer); 

%put &Result.;

Unfortunately, only the expression rather than the result is printed. 

1 REPLY 1
gamotte
Rhodochrosite | Level 12

Hello,

 

Your problem is independant of Eg prompts.

When a macrovariable is created as follows :

 

%let mv1=1; %let mv2=2;

%let mv=&mv1.+&mv2.;

 

The compiler only performs text substitution so you wil end up with &mv.=1+2.

 

If you want to evaluate the resulting expression you have to enclose the whole

expression in an evaluation function %eval() or %sysevalf

 

%let mv=%eval(&mv1.+&mv2.); /* => 3 */

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 704 views
  • 2 likes
  • 2 in conversation