Solved
New Contributor
Posts: 2

# %SYSEVALF Floating Point Conditions in %IF Statement

Hi,

I am trying to get a complicated %IF condition statement to work within my macro loop. I have been able to do this in the past with floating point comparisons using %SYSEVALF, but no matter what I do it keeps evaluating as FALSE even though the variables should make it TRUE.

Here is my LOG output for the condtion in question:

SYMBOLGEN:  Macro variable CURSTG resolves to 3
SYMBOLGEN:  Macro variable DISCELIGSTRAD resolves to 121.26

SYMBOLGEN:  Macro variable EDGECOND resolves to 121.26

SYMBOLGEN:  Macro variable DISCELIGFULL resolves to 184.7

SYMBOLGEN:  Macro variable DSCTROPORTION resolves to 0.975

SYMBOLGEN:  Macro variable EDGECOND resolves to 121.26

MLOGIC(STAGE):  %IF condition &curstg eq 3 and %sysevalf(&disceligstrad = &edgecond) and %sysevalf(&disceligfull <=

((1/&dsctroportion)*&edgecond)) is FALSE

Accepted Solutions
Solution
‎10-21-2014 01:39 PM
Super User
Posts: 13,523

## Re: %SYSEVALF Floating Point Conditions in %IF Statement

%sysevalf((1/&dsctroportion)*&edgecond)) resolves to 124.36923076923 when I calculate it. So the last condition is false.

All Replies
Solution
‎10-21-2014 01:39 PM
Super User
Posts: 13,523

## Re: %SYSEVALF Floating Point Conditions in %IF Statement

%sysevalf((1/&dsctroportion)*&edgecond)) resolves to 124.36923076923 when I calculate it. So the last condition is false.

New Contributor
Posts: 2

## Re: %SYSEVALF Floating Point Conditions in %IF Statement

Thanks,

It should be >= not <=, I must have switched the signs as I was rewriting it (I originally had "ge", then switched it to "<="). It works now.

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
• 2 replies
• 278 views
• 0 likes
• 2 in conversation