JavaScript如何将字符串转换为数字?

20
var str = '0.25';

如何将上面的内容转换为0.25


parseInt非常快,但如果你需要小数,你应该选择parseFloat:https://jsbench.me/pokty2hchw/1 - Xairoo
"'0.25'*1" 大约比 "parseFloat()" 快98% https://jsbench.me/bflb5lcqpw/1 - Miro
1
@Miro 要注意,不要将基础的单值情况与基准测试做比较。这些方法的规模不同。同时对一个包含10个值的数组进行比较,parseFloat() 的表现比 ''*1 快大约15%: https://jsbench.me/c8ldyhrth3/1 - Will
4个回答

43
有几种方法可以实现它:
使用一元加运算符:
var n = +str;

Number 构造函数:

var n = Number(str);

parseFloat函数:

var n = parseFloat(str);

1
此外,对于整数(仅限整数),可以使用~~strstr | 0 - Justin Johnson

6

对于您的情况,只需使用:

var str = '0.25';
var num = +str;

有几种方法可以在javascript中将字符串转换为数字。

最佳方法:

var num = +str;

这很简单,适用于整数和浮点数。
如果str无法解析为有效的数字,num将为NaN

你还可以:

var num = Number(str); //without new. work with both int and float

或者

var num = parseInt(str,10); //for integer number
var num = parseFloat(str); //for float number

请勿

var num = new Number(str); //num will be an object. (typeof num == 'object') will be true.

仅在特殊情况下使用parseInt,例如:

var str = "ff";
var num = parseInt(str,16); //255

var str = "0xff";
var num = parseInt(str); //255

2
var num = Number(str);

0

var f = parseFloat(str);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接