草庐IT

ruby - Infinity 和 NaN 的类型是什么?

我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

Ruby 除法无穷大/NaN 应返回 0

我有一个基于RubyOnRails的应用程序。在应用程序中,我想在Ruby中覆盖父类的划分。用于处理以下异常。我到处搜索。我想在应用程序中覆盖ruby除法。因此对于以下结果,它应该返回零。0.0/0=>NaN1.0/0=>InfinityZeroDivisionError:dividedby0我可以通过在除法运算中到处更改代码来处理它。但我想通过覆盖方法本身来节省我的时间。 最佳答案 您不需要特殊方法或像其他答案所述那样扩展float类。Ruby在Float类上为您提供了一个名为.finite的方法?http://ruby-doc.

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

我刚刚在我的程序中的一些数字操作中发现了一个错误,我得到了一个FloatDomainError(NaN)所以我开始记录传入的数字:if(metric.is_a?(Numeric))self.metric=metricelseLOGGER.warn("metric#{metric}isnotanumber")self.metric=0end但传入的数字是NaN显然is_a?(Numeric)因为我没有收到日志警告,它会将指标传递给我的指标=方法,这是我获取FloatDomainError的地方现在,如果我错了,请纠正我,但是NaN(不是数字)的类型似乎在语义上是错误的吗??谁能给我解释一

ruby - 检查数字是否为 NaN

我正在尝试检查我的RubyonRails应用程序中的变量是否等于NaN。我看到了这个answer,但这并不是很有用,因为在我的代码中,如果变量为NaN,我想返回0,否则返回值:return(average.nan?0:average.round(1))问题是如果数字不是NaN我会得到这个错误:NoMethodError:undefinedmethod`nan?'for10:Fixnum我无法检查该数字是否为Float实例,因为它在两种情况下都是(可能,我正在计算平均值)。我能做什么?只有我觉得奇怪的是,检查变量是否等于NaN的函数只对NaN对象可用? 最佳答

ruby - 如何在 Ruby 中声明 NaN(不是数字)?

“NaN”.to_f也返回0而不是NaN。 最佳答案 从Ruby1.9.3开始有一个constant获取NaN值Float::NAN=>NaN 关于ruby-如何在Ruby中声明NaN(不是数字)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/808653/

ruby-on-rails - ruby on rails 如何处理 NaN

我读过几篇关于NaN的文章,但没有弄清楚如何在RubyonRails中处理它。我想检查一个值是否为NaN我想用零(0)替换它。我尝试了以下logger.info(".is_a?Fixnum#{percent.is_a?Fixnum}")当百分比为NaN时,它返回false。我对记录器做了一些改动logger.info("Fixnum#{percent.is_a?Fixnum}percent#{percent}")输出Fixnumfalsepercent94.44444444444444FixnumfalsepercentNaNFixnumfalsepercent87.0

Javascript float + float = 字符串?

当我运行它时,它返回NaN。如果我不parseFloat,我将添加2个字符串。我错过了什么?我会说我的结果应该总是一个float?functioncalculate(i){varresult=0.0;$j(".t"+i+"input").each(function(){varnumber=$j(this).val();number=number.replace(",",".");if(parseFloat(number)!=NaN){result=parseFloat(result);number=parseFloat(number);result+=number;}});consol

javascript - 如何在不使用存在误报的isNaN的情况下判断value是否为NaN?

这个问题在这里已经有了答案:HowtotestwhethersomethingisidenticallyNaN?(3个答案)关闭9年前。如何在不使用isNaN函数的情况下检查输入值是否为NaN?

javascript - 为什么 Math.pow(1, NaN) 在 JavaScript 中等于 NaN?

在IEEE754-2008节"9.2.1Specialvalues"有提到pow(+1,y)is1foranyy(evenaquietNaN)如果没有阅读整个文档,维基百科给出了shortcut:The2008versionoftheIEEE754standardsaysthatpow(1,qNaN)andpow(qNaN,0)shouldbothreturn1sincetheyreturn1whateverelseisusedinsteadofquietNaN.为什么Math.pow(1,NaN)在JavaScript中是NaN?不符合标准吗? 最佳答案

javascript - 如何将 NaN 转换为 0?

当我的一个表单中没有输入值时,它会在javascript中创建一个NaN的稍后结果。我只想声明任何时候NaN会显示它会显示0。我认为只需添加a=a||0到我脚本的开头,它会很好。不管怎样,NaN总是等于0吗? 最佳答案 NaN是您无法覆盖的全局对象。引用:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/NaN一种替代方法是使用isNaN然后a=isNaN(a)?0:a; 关于java