Jquery 无法将生成的数字格式化为十进制形式

Jquery 无法将生成的数字格式化为十进制形式,jquery,numbers,Jquery,Numbers,为什么不将“总计”显示为小数点? class=“total”中输入的值是以2位十进制格式存储值的函数结果。显示行总计的功能工作正常,但当数量字段更改时,我使用下面的代码对行进行总计时,mat是正确的,并且更改发生正确,但它是int样式而不是货币格式(小数点后2位)。我也试着准确无误 $('[name^=qty]').change(function(){ var sum = 0; $('input.total').each(function() { sum += $

为什么不将“总计”显示为小数点? class=“total”中输入的值是以2位十进制格式存储值的函数结果。显示行总计的功能工作正常,但当数量字段更改时,我使用下面的代码对行进行总计时,mat是正确的,并且更改发生正确,但它是int样式而不是货币格式(小数点后2位)。我也试着准确无误

$('[name^=qty]').change(function(){
    var sum = 0;
    $('input.total').each(function() {
        sum += $(this).val();
    });

    $('#total').val(sum).toFixed(2);
    });
下面是对每行进行汇总的代码

function Tot(x,price,y) {
var total = CurrencyFormatted(x*price);
var v = document.getElementById(y);
v.setAttribute('value',total);}
所有这些函数都运行良好,合计正确,并按预期更新,但“总计”字段中的小数点除外

下面是我对每一行使用的html,然后是总数

<td>$<input id="t1" disabled="disabled" size="8" value="0.00" class="total" />
...
<input disabled="disabled" id="total" name="total" size="8" value="0.00" />
$
...
css中没有任何东西会改变类或表结构中数字的格式。我完全不知所措,但希望有人能看到我没有看到的东西。先谢谢你

$('input.total').each(function() {
    sum += parseFloat( $(this).val() );
});

$('#total').val( sum.toFixed(2) );
编辑,因为我很忙,我没有解释我的答案,格雷格·佩蒂特解释了,所以解释如下


您试图将toFixed()链接到不是数字的对象。此外,您没有将检索到的值转换为浮点值。JS可能已经处理了后者,但最好按照示例通过parseFloat运行它,您可以使用parseFloat函数来完成:

parseFloat(value).toFixed(2);
有关更多示例:


val
返回一个
字符串
对象,而不是数字。在调用
toFixed(2)

之前,您需要调用
parseFloat
或强制转换到
Number
,您试图将toFixed()链接到非数字的对象。此外,您没有将检索到的值转换为浮点值。JS可能已经处理了后者,但最好按照示例通过parseFloat运行它。