关于javascript:字符串到Int(数字)

String to Int (number)

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I Convert a String into an Integer in JavaScript?

我有以下代码:

1
2
3
4
5
6
7
8
9
    $.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,可能没有正确使用它。


使用此:

假设价格为小数,使用parseFloat,如果不是,使用parseInt

1
2
3
4
5
6
7
8
9
$.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));
  }
});


做得像:

1
var newPrice = parseInt(currentPrice) + parseInt(data);


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

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

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

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

1
data = parseInt(data, 10);

最后,如果你的数字不是整数,用parseFloat代替parseInt


这将帮助您:

1
 var newPrice = 1*currentPrice + 1*data;

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


尝试像这样修改:

美元.ajax({键入:"get",url:'index.php?act=ajax&op=getShippingPrice&id='+ShippingID,成功:函数(数据){

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

至少你会出错。