我遇到了一个奇怪的不受欢迎的Number
到NaN
转换,但不知道在哪里以及为什么。我显然在这里遗漏了一些东西,但我无法弄清楚是什么。
欢迎任何建议! ;)
以下是javascript代码:
updatedAbsoluteResult = currentlyDisplayedRentability * investment
resultAgainstReferencial = updatedAbsoluteResult - appropriateReferencialRentability * investment
$('#a0').html('currentlyDisplayedRentability: ' + typeof currentlyDisplayedRentability)
$('#a1').html('investment: ' + typeof investment)
$('#a2').html('updatedAbsoluteResult: ' + typeof updatedAbsoluteResult)
$('#a3').html('appropriateReferencialRentability: ' + typeof appropriateReferencialRentability)
$('#a4').html('resultAgainstReferencial: ' + typeof resultAgainstReferencial )
$('#a5').html('resultAgainstReferencial: ' + resultAgainstReferencial )
以下是HTML输出:
currentlyDisplayedRentability: number
investment: number
updatedAbsoluteResult: number
appropriateReferencialRentability: number
resultAgainstReferencial: number
resultAgainstReferencial: NaN
所有东西都是数字类型,但是当我想要返回最终结果时,我得到的结果是“不是数字”。 谁知道为什么?
享受你的周末!
答案 0 :(得分:2)
数字类型可以返回NaN并且仍然是数字类型。检查updatedAbsoluteResult,properReferencialRentability和investment的值,以查看是否有任何意外值。这个等式中的某些东西已经出错了。
答案 1 :(得分:1)
问题可能是结果反对意见是NaN
。你得到的结果是因为:
typeof NaN == "number"
告诉你:
resultAgainstReferencial = NaN;
alert(typeof resultAgainstReferencial); // alerts "number"
您甚至可以在此处查看:http://jsfiddle.net/jfriend00/t3ubg/
所以,在上游的某个地方,你试图用非数字的东西做数学运算。您必须查看所有数字输入的值,并查看数据出错的位置。
答案 2 :(得分:0)
NaN
在技术上仍属于number
类型。它通常由除以0引起。对另一个NaN
进行任何数学计算也将返回NaN
。
答案 3 :(得分:0)
或许具有讽刺意味的是,NaN
本身就是Number
。
您可能在某个地方遇到parseInt()
来电失败,或其他许多可能性。没有看到相关代码就很难猜到。