DATA Step, Macro, Functions and more

Rounding down by 2 dp

Accepted Solution Solved
Reply
Contributor
Posts: 24
Accepted Solution

Rounding down by 2 dp

Hi,

 

What function can be used to round down a number by 2 dp, for instance if I have the value of 0.99856 how can I round this down to 0.99?

 

Many Thanks

 

Adnan


Accepted Solutions
Solution
‎01-29-2018 12:04 PM
Super User
Posts: 22,850

Re: Rounding down by 2 dp

Posted in reply to Adnan_Razaq

That's not rounding, that's truncation, rounding to 2 decimal places would be 1.00. 

Note, please use full words, ie dp=decimal place is my assumption. Not everyone here will know your terminology.

 

 

data want;

x=0.99856;

y=floor(x*100)/100;
y=round(y, 0.01);

put x= y=;

run;

Adnan_Razaq wrote:

Hi,

 

What function can be used to round down a number by 2 dp, for instance if I have the value of 0.99856 how can I round this down to 0.99?

 

Many Thanks

 

Adnan


 

View solution in original post


All Replies
Solution
‎01-29-2018 12:04 PM
Super User
Posts: 22,850

Re: Rounding down by 2 dp

Posted in reply to Adnan_Razaq

That's not rounding, that's truncation, rounding to 2 decimal places would be 1.00. 

Note, please use full words, ie dp=decimal place is my assumption. Not everyone here will know your terminology.

 

 

data want;

x=0.99856;

y=floor(x*100)/100;
y=round(y, 0.01);

put x= y=;

run;

Adnan_Razaq wrote:

Hi,

 

What function can be used to round down a number by 2 dp, for instance if I have the value of 0.99856 how can I round this down to 0.99?

 

Many Thanks

 

Adnan


 

User
Posts: 1

Re: Rounding down by 2 dp

HI Reeza,

Thanks for this solution! Just a question about "y=round(y, 0.01)" as I'm not sure if it's necessary. When I run your code without it, it seems to work fine. Am I missing something? Thanks!

-Joey
Super User
Posts: 22,850

Re: Rounding down by 2 dp

It depends on what you want. Round will round the variable to the nearest second decimal place in this case. I think this is the same as using 8.2 format to display your data. However, 8.2 only controls the display, the value in the table would still be the actual value, so it depends on what you're trying to do overall.

Super User
Posts: 6,541

Re: Rounding down by 2 dp

Posted in reply to Adnan_Razaq

Can you have negative numbers, such as:

 

-0.98776

 

If so, what result would you want to see?

 

One possible way to program this (depending on your answer):

 

x = int(100*x) / 100;

☑ This topic is solved.

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

Discussion stats
  • 4 replies
  • 217 views
  • 1 like
  • 4 in conversation