小知识:浮点数不满足结合律交换律
以下基于:julia 1.7.0-rc2
julia> 1 - 1/7 + 4
4.857142857142858
julia> 1 + 4 - 1/7
4.857142857142857
julia> (1 - 1/7 + 4) == (1 + 4 - 1/7)
false
julia> (1 - 1/7 + 4) - (1 + 4 - 1/7)
8.881784197001252e-16
julia> eps(1 - 1/7 + 4)
8.881784197001252e-16
julia> ( (1:5) .- 1/7 ) == ( collect(1:5) .- 1/7 )
false
julia> (1:5) .- 1/7
0.8571428571428572:1.0:4.857142857142858
julia> collect( (1:5) .- 1/7 )
5-element Vector{Float64}:
0.8571428571428572
1.8571428571428572
2.857142857142857
3.857142857142857
4.857142857142858
julia> collect(1:5) .- 1/7
5-element Vector{Float64}:
0.8571428571428572
1.8571428571428572
2.857142857142857
3.857142857142857
4.857142857142857
下面这个也许是 bug:
julia> (1:5) .- 1/7
0.8571428571428572:1.0:4.857142857142858
julia> (1:5) .- 1/7 |> collect
5-element Vector{Float64}:
0.8571428571428572
1.8571428571428572
2.857142857142857
3.857142857142857
4.857142857142858
julia>
julia> (1 - 1/7):(5 - 1/7)
0.8571428571428572:1.0:3.857142857142857
julia> (1 - 1/7):(5 - 1/7) |> collect
4-element Vector{Float64}:
0.8571428571428572
1.8571428571428572
2.857142857142857
3.857142857142857