python: np.arange decimal places code example
Example: python: np.arange decimal places
# It's embarrassing that python's range accumulate rounding errors
# when using decimal step.
# It's easy to implement a generator that does this even without accumulating
# rounding errors.
#
# Lot of suggestions were made at https://stackoverflow.com/questions/477486/how-to-use-a-decimal-range-step-value
# Going through the forum, a general solution is presented below.
# The seq function use generates ranges with decimal step without rounding error
def seq(start, stop, step=1):
n = int(round((stop - start)/float(step)))
const = pow(step,-1)
if n > 1:
return([start + (i/const) for i in range(n+1)])
elif n == 1:
return([start])
else:
return([])
# The seq function above works fine though may have performance issue
# because of the use of power and division. Its therefore advice to
# use it only when rounding error is of atmost concern.