加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有人可以用Ruby向我解释NaN吗?

发布时间:2020-12-16 22:43:08 所属栏目:百科 来源:网络整理
导读:我刚刚在我的程序中发现了一些数字操作的错误,我得到一个FloatDomainError(NaN) 所以我开始记录传入的号码: if(metric.is_a?(Numeric)) self.metric = metricelse LOGGER.warn("metric #{metric} is not a number") self.metric=0end 但传入的数字是NaN,显
我刚刚在我的程序中发现了一些数字操作的错误,我得到一个FloatDomainError(NaN)

所以我开始记录传入的号码:

if(metric.is_a?(Numeric))
  self.metric = metric
else
  LOGGER.warn("metric #{metric} is not a number")
  self.metric=0
end

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

现在,如果我错了,请纠正我,但是如果NaN(非数字)是Numeric类型,那么在语义上是否错误?谁可以给我解释一下这个?

BTW使用Jruby-1.4.1

解决方法

IEEE 754浮点数定义-INFINITY INFINITY和NotANumber以使得可以做出反应,假设除以零.你也可以用这些来计算例如2 INF = INF

NaN不是一个独特的ruby功能,它们在java,c,……中也是数字

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读