Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .each(函数()不适用于浮点值_Javascript_Jquery - Fatal编程技术网

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())