DATA Step, Macro, Functions and more

Round function

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 17
Accepted Solution

Round function

[ Edited ]

value=round(3.340422,1.5);

its not round to 3.58 .

could you plz help me by use  round to get around 3.58 value in that statement.

 


Accepted Solutions
Solution
‎07-04-2017 03:52 PM
Super User
Posts: 17,867

Re: Round function

Note that the second parameter is supposed to be the multiple you want. Ie you want 3.34... rounded to the nearest 1.5. 

Multiples of 1.5 are 0, 1.5, 3, 4.5 so the result will be 3. 

 

If you want values of 3.58 you need to have some multiple of that number. So dividing it by 2, gives 1.79.

 

Multiples of 1.79 are 0, 1.79, 3.58 and 3.34 will round to 3.58.

 

However, I'm having a hard time seeing how this is actually what you would want. But it will answer the question you've asked.

 

X = round(3.340422, 1.79);

View solution in original post


All Replies
Super User
Posts: 17,867

Re: Round function

@vinod4842 Note that I've modified your subject line to Round as it's slightly more descriptive than 'SAS'. Please recall that our goal on here is to both answer your question and future users. 

 

Occasional Contributor
Posts: 17

Re: Round function

data ds;

infile datalines;

input ID CASH_TURNOVER  COUNTRY;

CASH_TURNOVER=round(CASH_TURNOVER,);

DATALINES;

702272 3.340422 IND

705651 2.371976 IND

;

RUN;

I WANT TO CHANGE THE CASH_TURNOVER  VARIABLE FIRST VALUE TO 3.58, WHAT CAN I DO WITH THAT ROUND OPTION

I GETTING SO MANY GARBAGE VALUE.

 

Super User
Posts: 17,867

Re: Round function


vinod4842 wrote:

 

I WANT TO CHANGE THE CASH_TURNOVER  VARIABLE FIRST VALUE TO 3.58, WHAT CAN I DO WITH THAT ROUND OPTION

I GETTING SO MANY GARBAGE VALUE.

 


WHAT'S THE RULE? WHY IS IT 3.58 AND NOT 3.59, OR 3.78? 

Solution
‎07-04-2017 03:52 PM
Super User
Posts: 17,867

Re: Round function

Note that the second parameter is supposed to be the multiple you want. Ie you want 3.34... rounded to the nearest 1.5. 

Multiples of 1.5 are 0, 1.5, 3, 4.5 so the result will be 3. 

 

If you want values of 3.58 you need to have some multiple of that number. So dividing it by 2, gives 1.79.

 

Multiples of 1.79 are 0, 1.79, 3.58 and 3.34 will round to 3.58.

 

However, I'm having a hard time seeing how this is actually what you would want. But it will answer the question you've asked.

 

X = round(3.340422, 1.79);
Occasional Contributor
Posts: 17

Re: Round function

thanku very much reeza
☑ This topic is SOLVED.

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

Discussion stats
  • 5 replies
  • 133 views
  • 1 like
  • 2 in conversation