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
>
>
>
>
>
>
>
>

Reply via email to