为什么我在这个页面上$NaN
Why am I getting $NaN on this page?
我一直得到$NaN而不是数字。(代码从 line 155
开始。如何获得数字输出而不是$NaN
.有没有更好的方法来调试它以确定到底要返回什么?
function daysInMonth(y, m) {
var t = new Date(y, m, 0);
return t.getDate();
}
function daysLeftInQuater(d) {
d = d || new Date(); // If no date supplied, use today
var t = new Date(d); // Don't mess up supplied date if there was one
var daysLeft = 2 - (t.getMonth() % 3);
do {
daysLeft += daysInMonth(t.getFullYear(), t.getMonth() + 1) - t.getDate();
t.setMonth(t.getMonth() + 1);
t.setDate(1);
} while (t.getMonth() % 3)
return daysLeft;
}
function getQuarter(d) {
d = d || new Date();
var m = Math.floor(d.getMonth()/3) + 2;
return m > 4? m - 5 : m;
}
function hoa_letsgo(){
var amt_due = $("#user_ad").val();
var qma_val = $("#qma_select").val();
if (qma_val == 1){//Q
var cur_year = $("#year").val(); var cur_day = $("#day").val();
var cur_month = $("#month").val(); var now = new Date(cur_month, cur_day, cur_year);
var days_left = daysLeftInQuater(cur_month);
var ind_amt = amt_due / 4;
var day_amt = amt_due / 360;
var quarter = getQuarter(now);
var am_cred = ind_amt * quarter;
var final_cred = am_cred + (day_amt * days_left);
final_cred = final_cred - amt_due;
final_cred = final_cred.toFixed(2)
$("#credit").html("$" + addCommas(final_cred));
}
从文本框中提取值会得到一个字符串。 不能对字符串执行某些算术函数,因为运算符已重载以执行其他操作。 例如,如果任一操作数是字符串,则加法运算符+
将执行字符串串联。
用parseInt(..., 10);
或parseFloat(..., 10);
包装所有.val()
呼叫,它应该可以解决您的问题。
相关文章:
- 为什么我在这个javaScript代码中使用NaN
- 函数将输出nan而不是数字,为什么
- 为什么Math.pow(1,无穷大)返回NaN
- 为什么分配给“NaN”或“未定义”会导致类型错误
- 为什么这个代码返回NaN
- 为什么 NaN 在 Javascript 中出现用于简单减法
- 为什么我在这个页面上$NaN
- 为什么我让 NaN 使用此阵列
- nan在C++中是什么意思?为什么pow(-4,-2.1)返回-nan
- 当a是负数,b是非整数时,为什么Math.pow(a,b)是NaN
- 如果我对索引进行硬编码,它会按预期工作,为什么这个增量器会返回NAN
- 为什么当我只是访问数组时,我在这里得到 NaN
- 为什么我的基于约简的平均值函数返回 NaN
- 为什么true/true是1,true/false是无穷大,false/true是0,false/false是NaN
- 为什么1/0的类型是NaN
- 将函数从 obj 传递到数组中.然后添加数组,但结果是 NaN.为什么
- 为什么 NaN === NaN 是假的
- 为什么jQuery减法输出NaN
- typeof(“2px”-1)返回数字;2px〃-1返回NaN.为什么?
- 它不是返回Sum,而是返回NaN.为什么会这样?