代码之家  ›  专栏  ›  技术社区  ›  Van Peer

julia inf by inf不同的结果

  •  1
  • Van Peer  · 技术社区  · 6 年前

    我对Julia很陌生-Windows上的1.0.0版。这个 documentation 声明如下:

    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

    1 回复  |  直到 6 年前
        1
  •  5
  •   Bogumił Kamiński    6 年前

    你实际上有:

    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