当前位置: 首页 > 开发者资讯

js如何把字符串转换成数字?

  在JavaScript中,将字符串转为数字最直接的方式是使用 Number() 函数或一元加号(+)。Number() 可处理整数和浮点数,若字符串含非数字字符则返回 NaN;而 + 是其简写形式,效果相同。parseInt() 和 parseFloat() 可分别解析整数和浮点数,但会忽略字符串末尾的非数字字符。

  js如何把字符串转换成数字?

  在JavaScript中,将字符串转换为数字有多种方法,以下是常见的几种方式及示例:

  1. 使用 Number() 函数

  将字符串直接转换为数字,包括整数和浮点数,若转换失败返回 NaN。

  javascript1let str = "123.45";

  2let num = Number(str); // 123.45

  4let invalidStr = "abc";

  5let result = Number(invalidStr); // NaN

  2. 使用 parseInt() 和 parseFloat()

  parseInt():解析字符串并返回整数,忽略非数字部分。

  javascript1let intStr = "42px";

  2let intNum = parseInt(intStr); // 42

  parseFloat():解析浮点数。

  javascript1let floatStr = "3.14em";

  2let floatNum = parseFloat(floatStr); // 3.14

  注意:两者会从字符串开头解析,直到遇到非数字字符为止。

js如何把字符串转换成数字.png

  3. 使用一元加号(+)运算符

  简洁的隐式转换方式,等价于 Number()。

  javascript1let str = "789";

  2let num = +str; // 789

  4let invalidStr = "hello";

  5let result = +invalidStr; // NaN

  4. 使用 Math.floor()、Math.ceil() 等数学函数

  数学运算会强制转换字符串为数字(非数字会返回 NaN)。

  javascript1let str = "9.8";

  2let num = Math.floor(str); // 9(向下取整)

  5. 利用 ~~ 双按位非(仅限整数)

  快速转换为32位整数(效率高,但会截断小数)。

  javascript1let str = "123.9";

  2let num = ~~str; // 123

  注意事项

  空字符串或空格:

  javascript1Number(" "); // 0

  2parseInt(" "); // NaN

  十六进制字符串:

  javascript1parseInt("0x10"); // 16(自动识别十六进制)

  科学计数法:

  javascript1Number("1e3"); // 1000

  总结

  需严格转换时用 Number() 或 +。

  提取字符串中的数字用 parseInt()/parseFloat()。

  快速取整可用 Math.floor() 或 ~~(但注意范围限制)。

  根据场景选择合适的方法,并始终处理可能的 NaN 结果!

  需要注意的是,如果字符串无法转换为有效的数字,以上方法将返回NaN。如果需要进行更复杂的数字处理,还可以使用JavaScript的Math对象提供的方法,如parseInt()和parseFloat()可用于处理特定位数的小数或十六进制数。


猜你喜欢