在这里,我通过ajax和json获得记录。
如果变量有,我会得到价值。
但是,如果变量“performance”具有空值,则会显示NaN
。
我希望打印数字值,而不是NaN
,而不是00.00
。
这可能吗?如果是,那怎么样? 谢谢。
我的代码,
function emp_month_perf(){
jQuery.ajax({
url: "<?php echo base_url(); ?>grade_tasks/emp_monthly_performance",
data:'',
type:"GET",
dataType: "json",
success:function(data){
var total_month_earn = data.total_earn_point;
var total_month_point = data.total_point;
var performance;
var per_color;
//var radius = "20px";
//alert(total_point);
performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);
if(performance>80)
{
per_color = "#33CF53";
}
else if(performance>=60 && performance<=80)
{
per_color = "#E0C533";
}
else
{
per_color = "#E12827";
}
//document.getElementById("monthperformance").style.borderRadius = radius;
document.getElementById("monthperformance").style.backgroundColor = per_color;
$('#monthperformance').html(performance);
},
error:function (){}
});
}
setInterval(emp_month_perf, 300000);
答案 0 :(得分:4)
使用OR运算符将数字设置为零。
var total_month_earn = data.total_earn_point || 0;
var total_month_point = data.total_point || 0;
但是现在你可以得到1/0这是无限的。 :)
其他选项是检查NaN,然后将值设置为零。
var performance = (((total_month_earn)/(total_month_point))*100);
var formatted = isNaN(performance) ? "00.00" : performance.toString(2);
答案 1 :(得分:0)
修复如下替换
performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);
使用
try {
performance = (((total_month_earn)/(total_month_point))*100).toFixed(2);
performance=isNaN(performance) ? "00.00" : performance;
}
catch(err) {
performance="00.00";
}