Javascript .each(函数()不适用于浮点值
输出应该是Javascript .each(函数()不适用于浮点值,javascript,jquery,Javascript,Jquery,输出应该是543.54,但我得到的是542.00。请帮助我纠正我做错的地方。提前谢谢 函数getTotal(){ var gtotal=0.00; $(“.sub_total”)。每个(函数(){ 小计=$(this.html()| 0; gtotal=parseFloat(gtotal)+parseFloat(小计); }); var gtotal=固定的gtotal.toFixed(2); $(“.grand_total”).html(总计); } 267.33 252.55 23.66
543.54
,但我得到的是542.00
。请帮助我纠正我做错的地方。提前谢谢
函数getTotal(){
var gtotal=0.00;
$(“.sub_total”)。每个(函数(){
小计=$(this.html()| 0;
gtotal=parseFloat(gtotal)+parseFloat(小计);
});
var gtotal=固定的gtotal.toFixed(2);
$(“.grand_total”).html(总计);
}
267.33
252.55
23.66
问题是因为您使用的是位OR运算符,而不是逻辑OR运算符
请注意,您可以使用+=
增加gtotal
,将最后两行合并为一行,并使用不引人注目的事件处理程序,而不是*事件属性上的丑陋,来整理逻辑:
$(函数(){
$('#sum')。单击(函数(e){
e、 预防默认值();
var gtotal=0.00;
$(“.sub_total”)。每个(函数(){
小计=$(this.html()| | 0;//注意| |此处
G总计+=浮动(小计);
});
$(“.grand_total”).html(gtotal.toFixed(2));
});
});
267.33
252.55
23.66
默认值由a改为a
按位OR转换为32位整数值,并对这些值执行OR运算
函数getTotal(){
var gtotal=0;//0
$(“.sub_total”)。每个(函数(){
小计=+$(this).html()| | 0;//默认值
gtotal=gtotal+subtotal;//无需再次将数字转换为数字
});
var gtotal=固定的gtotal.toFixed(2);
$(“.grand_total”).html(总计);
}
267.33
252.55
23.66
$(this.html()|0;
=+$(this.html()| 0;
尝试控制台。在每次循环迭代中记录小计的值。此外,您不需要解析浮点(gtotal)
;它已经是浮点。+$(this.html()| 0;
或数字($(this.html())