Infinity 和 NaN 的类型都有哪些?
Posted
技术标签:
【中文标题】Infinity 和 NaN 的类型都有哪些?【英文标题】:What are the types of Infinity and NaN?Infinity 和 NaN 的类型有哪些? 【发布时间】:2013-08-29 22:13:31 【问题描述】:我可以通过
获得Infinity
和NaN
n = 9.0 / 0 #=> Infinity
n.class #=> Float
m = 0 / 0.0 #=> NaN
m.class #=> Float
但是当我想直接访问Infinity
或NaN
时:
Infinity #=> uninitialized constant Infinity (NameError)
NaN #=> uninitialized constant NaN (NameError)
Infinity
和 NaN
是什么?它们是对象、关键字还是其他东西?
【问题讨论】:
【参考方案1】:您看到打印为Infinity
和NaN
的内容只是Float
类的两个特殊实例的字符串表示形式,而不是关键字或文字。它们通过浮点除以 0 或引用常量 Float::INFINITY
和 Float::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
【讨论】:
以上是关于Infinity 和 NaN 的类型都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章
java豆知识——NFINITY,-INFINITY和NAN
java豆知识——NFINITY,-INFINITY和NAN