What you're looking for seems to be some kind of interval type, which doesn't ship with Julia but would be easy to make. I did a simple version of this here:
http://nbviewer.ipython.org/gist/StefanKarpinski/b8fe9dbb36c1427b9f22#Interval-Arithmetic Googling shows up a few other implementations of interval types – maybe we should have a common one that other packages can build on. The r object you've constructed doesn't quite hit 0.4 exactly: julia> searchsorted(r,0.4) 1801439850948200:1801439850948199 julia> r[1801439850948200] 0.40000000000000013 julia> r[1801439850948199] 0.3999999999999999 Discrete ranges are trickier and more subtle than one can imagine before getting into it. On Tue, May 26, 2015 at 4:17 PM, Michael Francis <[email protected]> wrote: > Given that > > 0:10 > > Defines the set of all integer values inclusive of 0 and 10 > > 10 in 0:10 == true > > With floating point numbers the range > > 0.0:10.0 > > turns out to *not *define the range of all numbers inclusive of 0.0 and > 10.0 but the stepped range with step size 1.0 > > 0.5 in 0.0:10.0 == false > > implicit in the overload of the : operator is a step of 1.0 so > > 1.0 in 0.0:10.0 == true > > collect( 0.0:10.0) > > 11-element Array{Float64,1}: > 0.0 > 1.0 > 2.0 > 3.0 > 4.0 > 5.0 > 6.0 > 7.0 > 8.0 > 9.0 > 10.0 > > I'm assuming this the intended behavior? Is there a continuous Range > available? The following fails > > r = 0.0:eps(Float64):10.0 > > 0.4 in r == false > > > > > > > >
