Jquery - 奇怪的数字到字符串转换

时间:2011-11-11 17:05:32

标签: jquery numbers nan html-rendering

我遇到了一个奇怪的不受欢迎的NumberNaN转换,但不知道在哪里以及为什么。我显然在这里遗漏了一些东西,但我无法弄清楚是什么。

欢迎任何建议! ;)

以下是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

所有东西都是数字类型,但是当我想要返回最终结果时,我得到的结果是“不是数字”。 谁知道为什么?

享受你的周末!

4 个答案:

答案 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)

javascript中的

NaN在技术上仍属于number类型。它通常由除以0引起。对另一个NaN进行任何数学计算也将返回NaN

答案 3 :(得分:0)

或许具有讽刺意味的是,NaN本身就是Number

您可能在某个地方遇到parseInt()来电失败,或其他许多可能性。没有看到相关代码就很难猜到。