0

早上,我在使用 jQuery 加总一些总数时遇到问题。

我将以下内容传递给...

  • 价格 - 600.00
  • 航运 - 4.05

但是我得到以下结果......

subTotal = 600
productShipping = 4.05
orderTotal = 4.05600

 $.each(result, function (index, res) {
                var price = 600.00; //res.productPrice;

                var subTotal = res.itemQty * price;
                var orderTotal = res.productShipping + subTotal;

                new_record = "<tr>" +
                             "<td class=\"totals\">Sub Total</td>" +
                             "<td>£" + subTotal + "</td>" +
                             "</tr>" +
                             "<tr>" +
                             "<td class=\"totals\">Shipping</td>" +
                             "<td>£" + res.productShipping + "</td>" +
                             "</tr>" +
                             "<tr>" +
                             "<td class=\"totals\">Order Total</td>" +
                             "<td>£" + orderTotal + "</td>" +
                             "</tr>";

                $('#orderTotals').append(new_record);

我觉得我的 jQuery 添加这些项目可能存在一些问题,但是我可以解决。有人可以说明我哪里出错了。

res 是我从 web 服务调用中使用的响应。

非常感谢。

4

4 回答 4

5

+将连接字符串以及将数字相加。当你得到连接时,我们可以假设它res.productShipping是一个字符串。

因此在相加之前将其解析为浮点数:

var orderTotal = parseFloat(res.productShipping) + subTotal;
于 2012-07-25T09:01:53.263 回答
1

res.productShipping当您使用它来创建时,您是否尝试过包裹parseInt()parsedouble()(或类似的)ordertotal

在我看来,这听起来像是试图将它们作为字符串加在一起 ​​- 因此将它们连接起来 - 而不是将数字加在一起。

于 2012-07-25T09:01:31.997 回答
1

试试这个:

var orderTotal = parseFloat(res.productShipping) + parseFloat(subTotal);
于 2012-07-25T09:02:44.173 回答
0

您应该使用 parseInt 将价格转换为数字,然后执行计算。

于 2012-07-25T09:03:29.207 回答