首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁能用Ruby语言给我解释一下NaN?

谁能用Ruby语言给我解释一下NaN?
EN

Stack Overflow用户
提问于 2010-09-01 22:01:16
回答 2查看 5.5K关注 0票数 6

我刚刚在我的程序中发现了一些数字操作的错误,我得到了一个FloatDomainError (NaN)

因此,我开始使用以下命令记录传入的数字:

代码语言:javascript
复制
if(metric.is_a?(Numeric))
  self.metric = metric
else
  LOGGER.warn("metric #{metric} is not a number")
  self.metric=0
end

但是传入的数字是NaN,它显然是is_a?(Numeric),因为我没有收到日志警告,它将指标传递给我的metric=方法,这是我获得FloatDomainError的地方

现在,如果我错了,请纠正我,但是让一个数字(而不是A数字)是NaN类型是不是在语义上是错误的??有人能给我解释一下吗?

顺便说一句,使用Jruby-1.4.1

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-01 22:08:21

IEEE754浮点数定义了-INFINITY +无穷大和NotANumber,以便能够对除以零进行反应。你也可以用这些来计算,例如2+ INF = INF

NaN不是唯一的红宝石特性,它们在java、c++等语言中都是数字。也是

票数 5
EN

Stack Overflow用户

发布于 2010-09-01 22:06:31

我认为让NaN成为一个数字是非常有意义的。

在irb ->中尝试0.0 / 0.0,结果是NaN (在本例中是无穷大)

无穷大在数学上是一种数字,但你仍然不能用数据类型来表达它……在数学中,你也使用特殊的符号...

附言:你可以使用metric.nan吗?为了检查它..。那么它应该像你所期望的那样工作。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3618844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档