如何在JavaScript中将字符串转换为整数?
当前回答
如果您使用parseInt将浮点转换为科学符号,请小心!例如:
parseInt("5.6e-14")
将导致
5
而不是
0
其他回答
还有一个附带说明:MooTools有一个函数toInt(),用于任何本机字符串(或浮点(或整数))。
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
要将字符串转换为整数,我建议使用parseFloat而不是parseInt。原因如下:
使用parseFloat:
parseFloat('2.34cms') //Output: 2.34
parseFloat('12.5') //Output: 12.5
parseFloat('012.3') //Output: 12.3
使用parseInt:
parseInt('2.34cms') //Output: 2
parseInt('12.5') //Output: 12
parseInt('012.3') //Output: 12
因此,如果您注意到parseInt丢弃小数后的值,而parseFloat允许您处理浮点数字,因此如果您希望保留小数后的数值,则更适合。当且仅当您确定需要整数值时,才使用parseInt。
最简单的方法是使用本机Number函数:
var x = Number("1000")
如果这对你不起作用,那么有parseInt、一元加号、parseFloat with floor和Math.round方法。
parseInt()
var x = parseInt("1000", 10); // You want to use radix 10
// So you get a decimal number even with a leading 0 and an old browser ([IE8, Firefox 20, Chrome 22 and older][1])
一元加
如果字符串已经是整数形式:
var x = +"1000";
地板()
如果字符串是或可能是浮点数,并且需要整数:
var x = Math.floor("1000.01"); // floor() automatically converts string to number
或者,如果您要多次使用Math.floor:
var floor = Math.floor;
var x = floor("1000.01");
parseFloat()
如果你是一个在调用parseInt时忘记输入基数的类型,你可以使用parseFloat并根据自己的喜好进行舍入。这里我用地板。
var floor = Math.floor;
var x = floor(parseFloat("1000.01"));
舍入()
有趣的是,Math.round(如Math.floor)将进行字符串到数字的转换,因此如果您希望数字四舍五入(或如果字符串中有整数),这是一个很好的方法,可能是我的最爱:
var round = Math.round;
var x = round("1000"); // Equivalent to round("1000", 0)
函数doSth(){var a=document.getElementById('input').value;document.getElementById('number').innerHTML=toNumber(a)+1;}函数toNumber(str){return+str;}<input id=“input”type=“text”><input onclick=“doSth()”type=“submit”><span id=“number”></span>
前面的所有答案都是正确的。请先通过“typeot x==='number'”确认这是字符串中的数字。否则,它将返回NaN。
var num = "fsdfsdf242342";
typeof num => 'string';
var num1 = "12423";
typeof num1 => 'number';
+num1 = > 12423`
推荐文章
- 为什么我的球(物体)没有缩小/消失?
- 如何使用jQuery检测页面的滚动位置
- if(key in object)或者if(object. hasownproperty (key)
- 一元加/数字(x)和parseFloat(x)之间的区别是什么?
- angularjs中的compile函数和link函数有什么区别
- 删除绑定中添加的事件监听器
- 很好的初学者教程socket.io?
- HtmlSpecialChars在JavaScript中等价于什么?
- 如何删除表中特定列的第一个字符?
- React: 'Redirect'没有从' React -router-dom'中导出
- 如何在React中使用钩子强制组件重新渲染?
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象