输出应为543.54
,但我正在获取542.00
。请帮助我解决我做错了的事情。先感谢您。
function getTotal() {
var gtotal = 0.00;
$(".sub_total").each(function() {
subtotal = $(this).html() | 0;
gtotal = parseFloat(gtotal) + parseFloat(subtotal);
});
var gtotal = gtotal.toFixed(2);
$(".grand_total").html(gtotal);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sub_total">267.33</div>
<div class="sub_total"></div>
<div class="sub_total">252.55</div>
<div class="sub_total">23.66</div>
<div class="grand_total"></div>
<a href="javascript:void(0);" onclick="getTotal()">Sum</a>
最佳答案
问题是因为您使用的是按位或运算符,而不是逻辑或运算符。
请注意,您可以通过以下方式整理逻辑:使用+=
递增gtotal
,将最后两行合并为一,并使用不引人注目的事件处理程序代替难看的on*
事件属性:
$(function() {
$('#sum').click(function(e) {
e.preventDefault();
var gtotal = 0.00;
$(".sub_total").each(function() {
subtotal = $(this).html() || 0; // note || here
gtotal += parseFloat(subtotal);
});
$(".grand_total").html(gtotal.toFixed(2));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sub_total">267.33</div>
<div class="sub_total"></div>
<div class="sub_total">252.55</div>
<div class="sub_total">23.66</div>
<div class="grand_total"></div>
<a href="#" id="sum">Sum</a>
关于javascript - .each(function()不适用于浮点值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46633674/