如何在JavaScript中将字符串转换为整数?
当前回答
最快的
var x = "1000"*1;
Test
这里有一些速度比较(仅限macOS)…:)
对于Chrome,“plus”和“mul”是最快的(>700000,00运算/秒),“Math.floor”是最慢的。对于Firefox,“plus”是最慢的(!)“mul”是最快的(>900000000操作/秒)。在Safari中,“parseInt”是最快的,“number”是最慢的(但结果非常相似,>130000<31000000)。因此Safari将字符串转换为int比其他浏览器慢10倍以上。所以获胜者是“mul”:)
您可以通过此链接在浏览器上运行它https://jsperf.com/js-cast-str-to-number/1
我还测试了var x=~~“1000”;。在Chrome和Safari上,它比var x=“1000”*1慢一点(<1%),在Firefox上则快一点(<1%)。
其他回答
ParseInt()和+不同
parseInt("10.3456") // returns 10
+"10.3456" // returns 10.3456
我们可以使用+(stringOfNumber)而不是parseInt(stringOfNumber)。
示例:+(“21”)返回int值为21,类似于parseInt(“21)。
我们也可以使用这个一元“+”运算符来解析浮点数。。。
最简单的方法是使用本机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)
您可以使用加号。例如:
var personAge = '24';
var personAge1 = (+personAge)
然后您可以看到新变量的typebytypeofpersonAge1;这是数字。
我只在字符串前加了一个加号(+),这就是解决方案!
+"052254" // 52254
推荐文章
- 在数组中获取所有选中的复选框
- 如何为Firebase构建云函数,以便从多个文件部署多个函数?
- 如何发送推送通知到web浏览器?
- AngularJS:工厂和服务?
- js:将一个组件包装成另一个组件
- 父ng-repeat从子ng-repeat的访问索引
- JSHint和jQuery: '$'没有定义
- 模仿JavaScript中的集合?
- 用JavaScript验证电话号码
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 如何在HTML5中改变视频的播放速度?
- 谷歌地图API v3:我可以setZoom后fitBounds?
- 我可以将c#字符串值转换为转义字符串文字吗?
- ES6/2015中的null安全属性访问(和条件赋值)