Javascript 字符串到 int 转换
Javascript String to int conversion
>我在页面中嵌入了以下JS:
var round = Math.round;
var id = $(this).attr("id");
var len = id.length;
var indexPos = len -1; // index of the number so that we can split this up and used it as a title
var pasType = id.substring(0, indexPos); // adult, child or infant
var ind = round(id.substring(indexPos)); // converts the string index to an integer
var number = (id.substring(indexPos) + 1); // creates the number that will go in the title
window.alert(number);
id
将是类似于 adult0 的东西,我需要将该字符串拆分为 adult 和 0 - 这部分工作正常。
当我尝试增加 0 时出现问题。如您所见,我使用 Math.round 将其转换为整数,然后向其添加 1 - 我希望在此之后 0 为 1。但是,它似乎没有将其转换为整数,因为我得到01
,而不是1
。与 adult1 一起测试时,我收到的警报是 11
.
我用这个问题作为参考,也试过var number += id.substring(indexPos);
,这打破了JS(unexpected identifier '+='
)
有谁知道我做错了什么?有没有更好的方法
parseInt()
函数解析一个string
并返回一个integer
,10是基数或基数[文档]
var number = parseInt(id.substring(indexPos) , 10 ) + 1;
按 Number Class
转换 :-
例如:
var n = Number("103");
console.log(n+1)
输出:104
注意:- Number
是类。当我们传递字符串时,Number class
的构造函数将转换它。
JavaScript在运算符中的+
有关 - 如果一个数字和一个字符串被"添加",则该数字将转换为字符串:
0 + 1; //1
'0' + 1; // '01'
要解决此问题,请使用+
一元运算符,或使用parseInt()
:
+'0' + 1; // 1
parseInt('0', 10) + 1; // 1
一元+
运算符将其转换为数字(但是,如果它是小数,它将保留小数位),并且parseInt()
是不言自明的(转换为数字,忽略小数位)。
第二个参数是parseInt()
在放置前导 0 时使用正确基数所必需的:
parseInt('010'); // 8 in older browsers, 10 in newer browsers
parseInt('010', 10); // always 10 no matter what
如果您需要将字符串中的小数转换为它们的数值,还有parseFloat()
- +
也可以这样做,但它的行为略有不同:不过那是另一回事了。
JS会认为0是一个字符串,实际上它确实是,要将其转换为int,请使用:parseInt()函数,例如:
var numberAsInt = parseInt(number, 10);
// Second arg is radix, 10 is decimal.
如果数字无法转换为 int,它将返回 NaN,因此我建议在生产中使用的代码中也检查一下,或者至少如果您不是 100% 确定输入。
虽然parseInt
是执行此操作的官方函数,但您可以使用以下代码实现相同的功能:
number*1
优点是可以保存一些字符,如果您的代码必须进行大量此类对话,这可能会节省带宽。
使用 parseInt():
var number = (parseInt(id.substring(indexPos)) + 1);` // creates the number that will go in the title
如果你确定id.substring(indexPos)是一个数字,你可以这样做:
var number = Number(id.substring(indexPos)) + 1;
否则,我建议检查数字函数的计算是否正确。
- 如何在javascript中将Integer转换为int
- 为什么不'将字符串转换为int不正确(parseInt)
- 如何在angular js中将double转换为int
- 如何在javascript中将String变量转换为int
- Javascript 将 int 值转换为八位字节流数组
- 在Javascript中将int 12345转换为float 1.2345
- 将JavaScript对象属性值的数组转换为int
- 将逗号分隔的对象转换为INT以进行计算
- 在javascript中将字符串转换为int时出错
- 更新int数组会在Mongo-shell中转换为双数组
- 将属性从Int转换为String,并在KnockoutJS中显示
- Javascript-将字符串转换为Int会返回NaN错误
- 将文本框值转换为 int
- 调用math.rand,然后在函数argumnet中缩放并转换为int
- JavaScript 将字符串转换为带括号的 int 数组
- 在 JavaScript 中将字符串转换为 int 失败
- JavaScript:将 int 转换为 char 麻烦
- 如何将字符串转换为来自按钮输入的 Int
- Javascript 字符串到 int 转换
- 为什么对于可被10整除的数字,字符串到int之间的转换不能像预期的那样工作