Solved
Contributor
Posts: 53

Round giving unexpected result

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

Accepted Solutions
Solution
‎05-19-2016 11:09 AM
Super User
Posts: 13,582

Re: Round giving unexpected result

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?

All Replies
Posts: 3,167

Re: Round giving unexpected result

SAS version? OS?

```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```
Posts: 1,270

Re: Round giving unexpected result

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;

Solution
‎05-19-2016 11:09 AM
Super User
Posts: 13,582

Re: Round giving unexpected result

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?

🔒 This topic is solved and locked.