## Round numbers and getting rid of extra zeroes

Solved
Super Contributor
Posts: 459

# Round numbers and getting rid of extra zeroes

Hi,

suppose I have the following table PARMS:

 parameter esimate a 14.72344 b -0.00015 c 0.74911 d -0.00986

using the round function I rounded each value to 3 decimal places and got the following table PARMS2:

data parms2;
set parms;
estimate= round(estimate,.001);
run;
 parameter estimate a 14.72300 b 0 c 0.74900 d -0.01000

Now I want to get rid of the extra zeroes - I want to leave only the integer part and the first 3 decimals. I thought just getting rid of the 2 right-most numbers using the following code:

data parms3;
set parms2;
estimate=substr(estimate,1,length(estimate)-2);
run;

But the result PARMS3 is a mess:

 parameter estimate a 14.70000 b . c 0.70000 d 0

Thank you!

Accepted Solutions
Solution
‎10-12-2016 03:57 PM
Super User
Posts: 24,012

## Re: Round numbers and getting rid of extra zeroes

SUBSTR is intended for characters you have a numeric variable.

Why not use a format instead?

format estimate 12.3;

All Replies
Solution
‎10-12-2016 03:57 PM
Super User
Posts: 24,012

## Re: Round numbers and getting rid of extra zeroes

SUBSTR is intended for characters you have a numeric variable.

Why not use a format instead?

format estimate 12.3;
Super User
Posts: 13,941

## Re: Round numbers and getting rid of extra zeroes

Note that using a format like 12.3 can remove the need for a separate rounding step and may prevent some odd behaviors involving multiple rounding.

data _null_;
x= 123.78445;
r1=round(x,0.0001);
r2 = round(r1,0.001);
r3 = round(r2,0.01);
put x= 12.4 r1= x=12.3 r2= x=12.2 r3=;
run;
☑ This topic is solved.

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

Discussion stats
• 2 replies
• 236 views
• 1 like
• 3 in conversation