hours + = parseInt($(this).html());没有输出小数

时间:2013-08-21 16:59:34

标签: jquery cells

我目前正在使用此代码计算表格中列的总数:

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。

3 个答案:

答案 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