# UnitRange in 1.7-rc1, bug?

**URL:** <https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327>\
**Category:** General Usage\
**Tags:** broadcasting, range\
**Created:** [September 17, 2021, 11:09am UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327 "2021-09-17T11:09:21Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Paul\_Soderlind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_soderlind/32/1753_2.png) [@Paul\_Soderlind](https://discourse.julialang.org/u/Paul_Soderlind)\
**Post date:** [September 17, 2021, 11:09am UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/1 "2021-09-17T11:09:21Z")

</div>

`(1:5) .- 1/7` in 1.7-rc1 (Win64) gives `0.8571428571428572:1.0:3.857142857142857`,  
while 1.6.2 gives (the more reasonable) `0.8571428571428572:1.0:4.857142857142858`

Can anyone confirm? If so, I’ll file an issue.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [September 17, 2021, 11:22am UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/2 "2021-09-17T11:22:57Z")

</div>

```julia
julia> collect((1:5) .- 1/7)
4-element Vector{Float64}:
 0.8571428571428572
 1.8571428571428572
 2.857142857142857
 3.857142857142857

julia> collect((1:5)) .- 1/7
5-element Vector{Float64}:
 0.8571428571428572
 1.8571428571428572
 2.857142857142857
 3.857142857142857
 4.857142857142857

```

likely a bug, I’m surprised we don’t have this consistency test (i.e. length should be the same).

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [September 17, 2021, 11:26am UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/3 "2021-09-17T11:26:35Z")

</div>

On the other hand, in 1.6.2 if we wrote:

```julia
julia> 1 - 1/7 : 5 - 1/7
0.8571428571428572:1.0:3.857142857142857

```

That looked more inconsistent with the `(1:5) .- 1/7` result.  
The 1.7 results seem to be more self-consistent.

Simpler example:

```julia
julia> (1:5) .- 2
-1:3

```

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [September 17, 2021, 12:04pm UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/4 "2021-09-17T12:04:01Z")

</div>

> [@jling](#):
>
> likely a bug, I’m surprised we don’t have this consistency test (i.e. length should be the same).

~~From what I know of floating point numbers and Julia ranges, this sounds like an extremely difficult requirement.~~ Never mind, I forgot that there is indeed an object with explicit length within these calculations.

---

<div class="post-metadata">

**Author:** ![Paul\_Soderlind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_soderlind/32/1753_2.png) [@Paul\_Soderlind](https://discourse.julialang.org/u/Paul_Soderlind)\
**Post date:** [September 17, 2021, 12:08pm UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/5 "2021-09-17T12:08:48Z")

</div>

(mostly guessing here since `base/range.jl` is a bit overwhelming). If the behaviour has changed (1.6-\>1.7) from (a) first do 1:5 then subtract 1/7 from each element to (b) do 1-1/7:5-1/7, then this should probably be documented.

For my immediate code, I’ll probably change everywhere to `range(1,5,length=5) .- 1/7`

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [September 17, 2021, 12:17pm UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/6 "2021-09-17T12:17:00Z")

</div>

There’s probably something more intricate going on here since

```julia
julia> length((1:5) .- 1/7) == length((1.0:5) .- 1/7)
false

```

---

<div class="post-metadata">

**Author:** ![sijo](https://avatars.discourse-cdn.com/v4/letter/s/da6949/32.png) [@sijo](https://discourse.julialang.org/u/sijo)\
**Post date:** [September 17, 2021, 1:40pm UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/7 "2021-09-17T13:40:49Z")

</div>

`length((1:5) .- 1/7) == 4` looks very wrong to me and 1.7.0-beta3 still gave the correct size of 5, please file a bug!

---

<div class="post-metadata">

**Author:** ![Paul\_Soderlind](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paul_soderlind/32/1753_2.png) [@Paul\_Soderlind](https://discourse.julialang.org/u/Paul_Soderlind)\
**Post date:** [September 17, 2021, 2:01pm UTC](https://discourse.julialang.org/t/unitrange-in-1-7-rc1-bug/68327/8 "2021-09-17T14:01:37Z")

</div>

Done ([https://github.com/JuliaLang/julia/issues/42291](https://github.com/JuliaLang/julia/issues/42291))
