JQUERY Int and String Addition

JQUERY Int and String Addition

本文关键字:Addition String and Int JQUERY      更新时间:2023-09-26

好的,我有如下的"script":

var text = '24 - 08';
var value = text.split(" - ");

var result = 24 - value[0];
result = result + value[1];
alert(result);

http://jsbin.com/amusaw/edit javascript、html

所以这个简单的数学运算的结果是带parseInt的0或者不带parseInt的008。应该是8。我尝试了几个不同的数字(而不是08,04或05等…)或22 - 09.

有时结果值是正确的,有时不是。我试图将parseInt应用于所有"数学运算"……没有成功。我认为这是一个小错误,但我不明白:(

请确保在解析int时指定了基数:

parseInt(value[0], 10);
parseInt(value[1], 10);
整个代码:

var text = '24 - 08';
var value = text.split(" - ");

var result = 24 - parseInt(value[0], 10);
result = result + parseInt(value[1], 10);
alert(result);
http://jsbin.com/amusaw/2/edit

当一个字符串以0开头时,parseInt假设这个数字是八进制的(以8为基数)。这是不赞成的行为,但无论如何它都是这样表现的。数字08在八进制中是无效的,因为只有数字0-7存在,所以它只返回0。它确定8不是数字的一部分,就像看到0A0T(或任何其他非0-7字符)。

关于parseInt(): https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt的更多信息。事实上,您可以在该页的底部附近找到导致问题的parseInt("08");示例。

这似乎可以使用parseFloat而不是parseInt。你可以这样做:

var result = 24 - parseFloat(value[0]);
result = result + parseFloat(value[1]);
alert(result);

然后可以使用parseInt将其转换为int。