julia inf与inf的结果不同

julia inf与inf的结果不同,julia,Julia,我对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很陌生,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
一切都好

实际上,这里你有一件特别的事情要观察(这与你的问题没有直接关系,但很高兴知道,因为它可能会作为下一个问题出现):

原因是整数
0
-0
相同:

julia> 0 === -0
true
但浮点数携带符号位:

julia> 0.0 === -0.0
false
你实际上有:

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
一切都好

实际上,这里你有一件特别的事情要观察(这与你的问题没有直接关系,但很高兴知道,因为它可能会作为下一个问题出现):

原因是整数
0
-0
相同:

julia> 0 === -0
true
但浮点数携带符号位:

julia> 0.0 === -0.0
false