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

前端之家收集整理的这篇文章主要介绍了有人可以用Ruby向我解释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,……中也是数字

原文链接:https://www.f2er.com/ruby/265653.html

猜你在找的Ruby相关文章