change interval to accept float64

end up demoting to int() lots, and we need floats for percentages