Obsidian | Level 7

## How to check for decimal between .45 and .49 and round down?

I have an user who wants to round down any values between .45 and .49.  The user doesn't want it to automatically round up to .5.

How do I check on decimal points only for any decimal values between .45 and .49 and then round down to .4?

Thank you.

4 REPLIES 4
Diamond | Level 26

## Re: How to check for decimal between .45 and .49 and round down?

Probably ten or twelve or 134 ways to do this. Here's one:

``round_down_variable = floor(variable*10)/10;``

--
Paige Miller
Obsidian | Level 7

## Re: How to check for decimal between .45 and .49 and round down?

But how do I check for .45 - .49, then round down?

This floor function might work but I don't want to affect any other decimal values that aren't between .45 and .49.

## Re: How to check for decimal between .45 and .49 and round down?

Hello @CurtisER,

You could use the IFN function:

``````data have;
input x @@;
cards;
1.44 2.45 3.49 4.50 5.54 6.55
;

data want;
set have;
r=ifn(.45<=mod(x,1)<=.49, int(x)+.4, round(x,.1));
run;``````

If x can also be negative and then the same rule is to be applied, use

``r=ifn(.45<=abs(mod(x,1))<=.49, int(x)+sign(x)*.4, round(x,.1));``
Diamond | Level 26

## Re: How to check for decimal between .45 and .49 and round down?

@CurtisER wrote:

But how do I check for .45 - .49, then round down?

This floor function might work but I don't want to affect any other decimal values that aren't between .45 and .49.

You can always include an IF statement to handle just the numbers between .45 and .49

--
Paige Miller
Discussion stats
• 4 replies
• 215 views
• 0 likes
• 3 in conversation