字符串INT(数字)
可能重复:
How do I Convert a String into an Integer in JavaScript?字符串INT(数字)
我有以下代码:
$.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,并从阿贾克斯的数据是10,我所得到的是150010,而不是1510
我还试图用parseInt函数,可能没有使用它的权利。
使用此:
假设带有小数价格,使用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));
}
});
不喜欢它:
var newPrice = parseInt(currentPrice) + parseInt(data);
首先将您的HTML派生值转换为数字(并确保您提供radix参数以应对前导零)。
你也应该去除可能存在的任何空白:
data = parseInt(data, 10);
:
var currentPrice = parseInt($.trim($("#finalPrice").html()), 10);
var newPrice = currentPrice + data;
如果来自服务器的输出不是JSON格式,那么你也应该加入之前过于转换data
场
最后,如果你的号码实际上不是整数,使用的parseFloat
代替parseInt
尝试MODI fying像这样的:
$阿贾克斯({ 类型: “GET”, 网址: 'index.php的行为= ajax的& OP = getShippingPrice & ID =' + shippingID, 成功:功能(数据) {
var newPrice = Number(currentPrice + Number($("#finalPrice").html()));
$("#finalPrice").html(newPrice);
}
});
至少你会得到错误。
为什么在数字中包装数字? – mplungjan
将每个字符串包装在parseInt中 – mplungjan
是的,它很可能是'$('#finalPrice').html()'输出一个字符串,而不是一个int,使用'parseInt'会将字符串转换为一个整数,而不是'+'操作符'连接'一个字符串,它会'添加'到整数。 – Ohgodwhy
如果要执行加法,两个操作数都需要是数字。 –