【发布时间】:2013-10-21 14:49:22
【问题描述】:
我正在使用 PhoneGap 构建一个 Android 应用程序。我多次从数字输入中获取值,一切正常,但有一次它的行为很奇怪:
我从数字输入中获取值并将其解析为整数 - 一切正常。但是当我将这些值相乘时,它会返回一个值 + NaN NaN NaN - 它看起来像这样:
var d1;
var d2;
var d3;
d1 = parseInt($('input.inputOne').val());
d2 = parseInt($('input.inputtwo').val());
d3 = ((d1*d2)/10000).toFixed(2);
在控制台中它给了我价值:
d1
100
d2
200
d3
2.00NaN NaN NaN
但如果我将 d3 放入一些 DOM 元素中,它只会给我
NaN
我之前在这个应用程序中做过类似的事情,一切都很好 - 我不知道为什么在这个特殊情况下它不起作用 - 有什么建议吗?
编辑:
有趣的事情 - 即使我这样做了,例如
d3 = d2;
它给了我
d3
200NaN NaN NaN
编辑 2:
更有趣的东西 - 如果我不解析为从输入(d1 和 d2)获取的 int 值,在乘法之后它会给我:
d3
2.00undefined undefined NaN
【问题讨论】:
-
请提供实际细节。
100 * 10永远不会返回像NaN这样的任何东西,所以你遗漏了一些细节。 -
NaN 通常在您尝试使用 null、未定义或 Infinity 的成员进行数学运算时返回(并且有时可以使用未定义的成员返回 Infinity)。
-
你的 parseInt 应该是
parseInt(variable, 10)其中 10 是基数。 -
好建议@MBillau,但它仍然不起作用:/
标签: javascript android input cordova