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?
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.