【问题标题】:What are the types of Infinity and NaN?Infinity 和 NaN 的类型有哪些?
【发布时间】:2013-08-29 22:13:31
【问题描述】:

我可以通过

获得InfinityNaN
n = 9.0 / 0 #=> Infinity
n.class #=> Float

m = 0 / 0.0 #=> NaN
m.class #=> Float

但是当我想直接访问InfinityNaN 时:

Infinity #=> uninitialized constant Infinity (NameError)
NaN #=> uninitialized constant NaN (NameError)

InfinityNaN 是什么?它们是对象、关键字还是其他东西?

【问题讨论】:

    标签: ruby nan infinity


    【解决方案1】:

    您看到打印为InfinityNaN 的内容只是Float 类的两个特殊实例的字符串表示形式,而不是关键字或文字。它们通过浮点除以 0 或引用常量 Float::INFINITYFloat::NAN 返回。

    Float::INFINITY.class
    # => Float
    Float::INFINITY.to_s
    # => "Infinity"
    
    Float::NAN.class
    # => Float
    Float::NAN.to_s
    # => "NaN"
    

    【讨论】:

    • Float::INFINITY 一般用于表示无穷大,例如loop.size 也返回它。
    • 我本来应该问点别的,但我问了一些不同的问题..我会带着我的问题回来..我认为您在回答中遗漏了一些东西...:)
    【解决方案2】:

    如果你想要 inf/nan 字面量,使用 follow:

    >> Float::INFINITY
    => Infinity
    >> Float::NAN
    => NaN
    

    Float constants list

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 2011-09-08
      • 2015-12-24
      • 1970-01-01
      • 2023-04-01
      • 2012-03-28
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多