I have been building a fully functional Web Scraper for a client of mine, and they wanted me to increase all prices in an excel sheet by 18% and then round it up to the nearest quarter (.00, .25, .50, .75). I was struggling for this with a while, and was determined to solve it by myself. After a few hours of messing around on my calculator I finally figured out a solution that works for rounding up or down to the nearest decimal, so an eight, a fourth, a third.. anything. It’s pretty cool, so I thought I’d share it with ya’ll.

Let’s say you start out with $3.00, and want to multiply that by 18%, and then round it up to the nearest quarter.

**3 x 1.18 = **3.54, and rounding that up to the nearest quarter makes it **3.75. **Let’s see if we can figure out some type of formula to do this so we can do it programmatically.

Step 1: Multiply 3 x 1.18 = 3.54

Step 2: Multiply result (3.54) by the decimal type that you want to reach. So if you want to round up/down to the nearest eight, you’d multiply by 8. In this case we want to round up/down to the nearest quarter, so you multiply by 4. (3.54 x 4) = **14.16**

Step 3: You need to choose whether you want to round up or round down. If you want to round up, use **Math.Ceiling/Ceil** depending on your programming language, and if you want to round down use **Floor. **Since we are rounding up in this case, the result is **15**.

Step 4: Divide the result (**15)** by the decimal type you used in Step 2. So if quarter (4), eight (8), etc. In this case we are using quarters, so I multiplied **15 / 4 = 3.75.**

There you go, stay tuned for more posts/tutorials.