可能重复:
How do I Convert a String into an Integer in 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,可能没有正确使用它。
答案 0 :(得分: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));
}
});
答案 1 :(得分:2)
这样做:
var newPrice = parseInt(currentPrice) + parseInt(data);
答案 2 :(得分:0)
这将对您有所帮助:
var newPrice = 1*currentPrice + 1*data;
乘以1
不会改变结果,但会改变变量类型。
答案 3 :(得分:0)
首先将HTML派生的值转换为数字(并确保提供radix参数以应对前导零)。
您还应删除可能存在的任何空格:
var currentPrice = parseInt($.trim($("#finalPrice").html()), 10);
var newPrice = currentPrice + data;
如果服务器的输出不是JSON格式,那么在添加之前你也应该转换data
字段:
data = parseInt(data, 10);
最后,如果您的数字实际上不是整数,请使用parseFloat
代替parseInt
答案 4 :(得分:-1)
尝试像这样修改:
$。AJAX({ 类型:“GET”, url:'index.php?act = ajax& op = getShippingPrice& id ='+ shippingID, 成功:功能(数据){
var newPrice = Number(currentPrice + Number($("#finalPrice").html()));
$("#finalPrice").html(newPrice);
}
});
至少你会收到错误。