我目前正在使用此代码计算表格中列的总数:
function calculateTotals() {
//these will hold the totals
var hours = 0;
//reference the rows you want to add
//this will not include the header row
var rows = $("#deliverables tr:not(:first-child, :last-child)");
rows.children("td:nth-child(2)").each(function() {
hours += parseInt($(this).html());
});
midHours = (hours).toFixed(2);
$(".total-hours").html(midHours);
};
但是,输出midHours
不会显示小数。例如,值为12.5的表格单元格 - 在.total-hours
单元格中输出为12。
答案 0 :(得分:2)
因为您正在使用parseInt(),所以请使用parseFloat()
var rows = $("#deliverables tr:not(:first-child, :last-child)");
rows.children("td:nth-child(2)").each(function() {
hours += parseFloat($(this).html());
});
答案 1 :(得分:0)
而是使用parseInt
,将您的值乘以1 (your_val * 1)
。它会将值转换为数字。
hours += $(this).html() * 1;
答案 2 :(得分:0)
Arun说的是什么,但是我提供了一个解释,因为你显然对变量知之甚少,整数是一个没有小数位的数字,如15或256或108,197;在parseInt(n)中,int代表整数,parseFloat(n)中的float代表浮点数
如果你把一个浮点数转换为一个int,它只会丢弃小数点后的所有内容而不进行舍入,所以72.9999999999会变为72.快速修复是添加.499999999然后转换为整数,但这只是你真正想要的使用舍入转换为整数,听起来就像你没有。
如果你想要小数位,请使用parseFloat