Hi: I need to find the multiples of a decimal number in a floating point list. For instance, if a have the list [0,0.01,0.02,...1], I want the multiples of 0.2: [0, 0.2,0.4,0.6,0.8,1].
With integers this problem is easy, just test for (i%n == 0), where i is the number I am testing, and n is the multiple. Given the finite resolution of floating point numbers, this is more complicated for float. I came with this solution: from numpy import arange from math import modf, fabs float_range = arange(0, 1, 0.01) for f in float_range: m = modf(f / 0.2)[0] if m<1e-13 or fabs(1-m)<1e-13: print f # Do something else This code works, however, I found it a little ugly. Is there a better way to do the same? Alejandro. -- http://mail.python.org/mailman/listinfo/python-list