我正在使用jQuery的.each()并获取一些数字。我正在用这些数字做一些数学运算,并试图将结果相加,但不是将其相加。到目前为止,这是我的代码:

if (zName == 'Premium') {
    $('.product-total .productitemcell .productitemcell').each(function (index, value) {
        oPrice = parseFloat($(this).text().replace('$', ''));
        nPrice = parseFloat(oPrice - (oPrice * (10 / 100))).toFixed(2);
        subTotal += nPrice;
        $(this).html('<s>$' + oPrice + '</s> <span style="color:#ef0f0f;">$' + nPrice + '</span>');
    });
}
console.log(subTotal);

最佳答案

.toFixed()函数返回字符串,而不是数字。

(此外,“ oPrice”,“ nPrice”和“ subTotal”应使用var声明;也许它们未显示在代码中。)

.toFixed()的返回值进行转换不一定会保留发生的任何分数截断。使用JavaScript浮点数学进行货币数学非常棘手且容易出错。

09-25 17:45