我的脚本返回NAN,我希望它显示为0。
使用|| 0已经实现了这一点,但它现在为var%Q返回100而不是0。是什么导致它返回100?
$('#observationTotalRefresh').on('click', function () {
var
sumP = 0,
sumQ = 0,
countP = 0,
countQ = 0;
$('.observationPositive:not(:disabled)').each(function(){
countP++;
sumP += Number($(this).val());
});
$('.observationQuestionable:not(:disabled)').each(function(){
countQ++;
sumQ += Number($(this).val());
});
var percentP = 100/(1 + (sumQ/sumP)) || 0;
var percentQ = (100 - percentP) || 0;
$("#observationPositivePercentage").text(percentP.toFixed(0));
$("#observationQuestionablePercentage").text(percentQ.toFixed(0));
$("#observationTotal").text(sumP + sumQ);
});
答案 0 :(得分:0)
如果您对|| 0
percentP
percentP
,则确保percentQ
始终为数字。因此,100 - percentP
始终为percentP
;如果percentQ
为0,那么var percentP = 100 * sumP / (sumP + sumQ);
将为100.
var percentP, percentQ;
if(sumP == 0 && sumQ == 0) {
percentP = percentQ = 0;
} else {
percentP = 100 * sumP / (sumP + sumQ);
percentQ = 100 * sumQ / (sumP + sumQ);
}
代替?然后,它只是
{{1}}
答案 1 :(得分:0)
在这一行
var percentP = 100/(1 + (sumQ/sumP)) || 0;
sumQ/sumP
将0/0
并返回NaN
,导致等式中的其余部分评估为NaN
,然后返回0
。
然后在这一行
var percentQ = (100 - percentP) || 0;
它将是100 - 0
,即100