-1

可能重复:
如何在 JavaScript 中将字符串转换为整数?

我有以下代码:

    $.ajax({
      type: "GET",
      url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID,
      success: function(data) {
        var currentPrice = Number($("#finalPrice").html());
        var newPrice = Number(currentPrice + data);
        $("#finalPrice").html(newPrice);
      }
    });

我尝试计算新价格。但我实际上得到了一串 newPrice,其中包含当前价格,然后是来自 ajax 的数据。

如果当前价格是 1500,而来自 ajax 的数据是 10,我得到的是 150010,而不是 1510。

我也尝试使用 parseInt,可能没有正确使用它。

4

5 回答 5

4

用这个:

假设带有小数的价格,使用parseFloat,如果没有,使用parseInt

$.ajax({
  type: "GET",
  url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID,
  success: function(data) {
    var currentPrice = parseFloat($("#finalPrice").html());
    var newPrice = currentPrice + parseFloat(data));
    $("#finalPrice").html(newPrice.toFixed(2));
  }
});
于 2013-01-03T08:41:12.537 回答
2

这样做:

var newPrice = parseInt(currentPrice) + parseInt(data);
于 2013-01-03T08:41:27.523 回答
0

这将帮助您:

 var newPrice = 1*currentPrice + 1*data;

乘以1不改变结果,但它会改变变量类型。

于 2013-01-03T08:42:36.457 回答
0

首先将您的 HTML 派生值转换为数字(并确保您提供 radix 参数以处理前导零)。

您还应该删除可能存在的任何空白:

var currentPrice = parseInt($.trim($("#finalPrice").html()), 10);
var newPrice = currentPrice + data;

如果服务器的输出不是 JSON 格式,那么您还应该data在添加之前转换该字段:

data = parseInt(data, 10);

最后,如果您的数字实际上不是整数,请使用parseFloat而不是parseInt

于 2013-01-03T08:42:44.687 回答
-1

尝试像这样修改:

$.ajax({ type: "GET", url: 'index.php?act=ajax&op=getShippingPrice&id='+shippingID, 成功: function(data) {

    var newPrice = Number(currentPrice + Number($("#finalPrice").html()));
    $("#finalPrice").html(newPrice);
  }
});

至少你会得到错误。

于 2013-01-03T08:43:20.187 回答