HI,
I have a value x=0.032949.
if x >= 0.0001 then y=put(round(x,0.0001),7.4);
I am getting x=0.017.
Where as I should be getting 0.0329.
Why is this happening?
How do I fix this?
Thanks,
Archana
Post your full code and the log.
I suspect something is going on with your y variable as I can't reproduce your error with this program:
data junk;
x=0.032949;
if x >= 0.0001 then y=put(round(x,0.0001),7.4);
run;
I get the expected value.
And your reason for not using y=put(x,7.4); is exactly what?
SAS version? OS?
I couldn't repeat your issue.
23 data _null_ ; 24 x=0.032949; 25 y=put(round(x,0.0001),7.4); 26 put y=; 27 run; y=0.0329 NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds
Following syntax is giving right numbers. Look for Y variable instead of X for rounded numbers
data _null_;
x=0.032949;
if x >= 0.0001 then y=put(round(x,0.0001),7.4);
put _all_;
run;
Post your full code and the log.
I suspect something is going on with your y variable as I can't reproduce your error with this program:
data junk;
x=0.032949;
if x >= 0.0001 then y=put(round(x,0.0001),7.4);
run;
I get the expected value.
And your reason for not using y=put(x,7.4); is exactly what?
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.