Rounding a floating point number to a near-fractionThis tip submitted by Steven on 2006-04-21 19:49:32. It has been viewed 9151 times.Rating of 7.0 with 24 votes Say you have a float number like 3.42 You can round to a fraction decimal like this. Say you want the nearest 1/8 increment. First add 1/2 of 1/8 decimal, the value of which is .125/2 =.0625, so the math is 3.42 + .0625 = 3.4825 Now multiply by the fraction you want 3.4825 * 8 = 27.86 Then take the integer and devide by the fraction: 27 * 8 = 3.375 That's 3/8's. I've used this a lot so I know it works. Because floating point numbers cannot be arbitrarily precise, you should not rely on this method if you need 100% precision! More tips Help your fellow programmers! Add a tip! |