# If Statements Based on Number of Decimal Places?

#### Mydako

##### New Member
Hello all,

I was wondering if it is possible to create an if statement that does different things depending on how many decimal places appear in a number?

For example if I have the numbers 27.23 and 30.496 can I do an if statement that multiples 27.23 by 4, but multiplies 30.496 by 5?

What I need is a way to do different things to numbers depending on if they have 2 (or less) decimal places, and 3 (or more) decimal places.

Is this possible?

Long Version Context:

For work I handle an Amazon account. Sometimes someone will order something with shipping, gift wrapping, the wrong tax, etc, and our system isn't equipped to handle that, so we have to wrap the costs into the item price. So Product X usually sells for \$30, but one order had extra shipping for \$2.48, so that 2.48 gets added into the item price. If it was one item, that's easy, 32.48. But if someone buys five for \$150, and the shipping is the same 2.48, the item price becomes \$152.48 total, but prices have to be entered individually, so divided by five it becomes 30.496 Obviously we can't enter something with three decimals, so what I have to do is enter four at one price, and the fifth at another. 4x30.49 (30.496 rounded down) and 1 at 30.52, so it equals the proper total.

I have to do this 50-100 times. So I'm looking for a way to automate the math with an if statement: Essentially if item price + extra charges / items sold has two (or less) decimal places, just return that number, but if the result has three (or more) decimal places it would do a different function. I can work out the function I needed, just don't know how to set it so it only applies to numbers with three or more decimals.

Thanks,

### Excel Facts

Create a chart in one keystroke
Select the data and press Alt+F1 to insert a default chart. You can change the default chart to any chart type

#### Scott T

##### Well-known Member
Maybe something like

#### mikerickson

##### MrExcel MVP
Something built on this might work for you
=IF((100*A1)=INT(100*A1),"2 or fewer D.P.", "other")

#### Mydako

##### New Member
Thank you both for you help.

Mike, that's a really good, simple way of figuring it out. Annoyed I didn't think of it.

Scott, are you able to explain a bit about how/why yours works? I get checking the length, starting in the middle, using the decimal point...but the +1999 is where I'm lost.

Thanks again

#### Eric W

##### MrExcel MVP
Maybe:

ABCD
1AmountQtyAmt 1-4Amt 5
2152.48530.4930.52

</tbody>
Sheet5

Worksheet Formulas
CellFormula
C1="Amt 1-"&IF(C2*B2=A2,B2,B2-1)
D1=IF(C2*B2=A2,"","Amt "&B2)
C2=ROUNDDOWN(A2/B2,2)
D2=IF(D1="","",A2-(C2*(B2-1)))

</tbody>

<tbody>
</tbody>

Put your values in A2 and B2, and the rest will calculate for you.

#### Scott T

##### Well-known Member
Thank you both for you help.

Mike, that's a really good, simple way of figuring it out. Annoyed I didn't think of it.

Scott, are you able to explain a bit about how/why yours works? I get checking the length, starting in the middle, using the decimal point...but the +1999 is where I'm lost.

Thanks again
To get only the digits after the decimal I used the mid function since I do not know how many digits there are I just used a large number.

#### Mydako

##### New Member
Thanks Eric! That automated more of that than I expected, thanks muchly.

Scott, okay, now I get it, I thought there was something specific about 1999 being used, rather than just generic large number. Thanks for explaining that.