我对Julia很新 - 在Windows上的1.0.0版本.该文件指出以下
julia> Inf / Inf NaN
但是当我执行以下操作时,我会得到不同的结果
julia> 1/0 Inf julia> 1/0 / 1/0 # this should be NaN right, tried (1/0)/(1/0) as well Inf julia> 1/0 Inf julia> ans/ans NaN
为什么1/0 / 1/0
不NaN
,而是ans/ans
?
你实际上有:
julia> (1/0)/(1/0) NaN
所以这是一致的.
现在关于:
julia> 1/0 / 1/0 Inf
请观察它的评估方式:
julia> :(1/0 / 1/0) :(((1 / 0) / 1) / 0)
所以我们得到一个标准的从左到右的评估(应该是预期的).你得到:
julia> 1/0 Inf julia> (1/0)/1 Inf julia> ((1/0)/1)/0 Inf
一切都好.
实际上在这里你有一个特别需要注意的事情(这与你的问题没有直接关系,但很高兴知道它可能会成为下一个问题):
julia> Inf / 0 Inf julia> Inf / (-0) Inf julia> Inf / (0.0) Inf julia> Inf / (-0.0) -Inf
原因是整数0
与以下相同-0
:
julia> 0 === -0 true
但是花车带有标志位:
julia> 0.0 === -0.0 false