Solved
Contributor
Posts: 37

# macro variable calculation

Hi, guys:

I try to take the division operation on macro variables, but it does not work. Can you give me some idea how to do it.

As a simple example, I have a variable, xx=5 and I want to generate yy that yy=1/xx=.2. Both variables are macro variables.

My code is the following

%let xx=5;

%let yy=1/%eval(&xx.);

%put &yy.;

The outcome is yy=0.

It seems to be the case that the division operation causing the trouble. I even tried %let zz=%eval(1/5). The outcome is still 0.

Accepted Solutions
Solution
‎07-09-2012 01:19 PM
Posts: 3,167

## Re: macro variable calculation

%let xx=5;

%let yy=%SYSEVALF(1/&xx);

%put yy=&yy;

%SYSEVALF will do floating, while %eval will only do integer.

Haikuo

All Replies
Solution
‎07-09-2012 01:19 PM
Posts: 3,167

## Re: macro variable calculation

%let xx=5;

%let yy=%SYSEVALF(1/&xx);

%put yy=&yy;

%SYSEVALF will do floating, while %eval will only do integer.

Haikuo

Contributor
Posts: 37

## Re: macro variable calculation

Hi, Hai.Kuo:

Thanks for the input. It works.

🔒 This topic is solved and locked.