如何在 JavaScript 中将字符串转换为数字

前提:字符串必须是一个数字。

Number()

通过 Number() 转换函数传入一个字符串,它会尝试将其转换为一个整数或浮点数,这个方法只能基于十进制进行转换,并且字符串中不能出现非数字的字符,否则将返回 NaN

Number( 123 ) // 123
Number( 12.3 ) // 12.3
Number( 3.14abcd ) // NaN

+

将字符串转换为数字最快速的方法是使用一元运算符 +

+ 123   // 123
+ 123.123   // 123.123
+ 123,123  // NaN

如果不是一个纯数字,将返回 NaN

你也可以用-(减号)将其转化为负数值。

Math.floor()

Math.floor() 返回小于或等于一个给定数字的最大整数。可以理解 Math.floor() 为向下取整

Math.floor( 4 ) // 4
Math.floor( 45.95 ) // 45
Math.floor( 45.05 ) // 45
Math.floor( -45.05 ) // -46
Math.floor( -45.95 ) // -46

Math.ceil 向上取整,要注意的是负数它会往大的取

Math.ceil( -2019.05 ) // -2019

还有其他的一些 Math 方法,也会在运算过程中,将纯数字字符串转化为数字。

parseInt() 和 parseFloat()

parseInt() 方法可解析一个字符串,并返回一个整数。

注意

  • 字符串中只返回第一个数字。
  • 开头和结尾的空格是允许的。
  • 如果字符串的第一个字符不能被转换为数字,那么 parseInt() 会返回 NaN
  • 在字符串以 0 为开始时旧的浏览器默认使用八进制基数。ECMAScript 5,默认的是十进制的基数。

parseInt( 123 ) // 123
parseInt( 123.1234 ) // 123
parseInt(  1 2 3  ) // 1
parseInt( 18 ACG ) // 18
parseInt( hi 2 ) // NaN

parseInt( 10 , 10) // 10
parseInt( 010 ) // 10
parseInt( 10 , 8) // 8
parseInt( 0x10 ) // 16
parseInt( 10 , 16) //16

parseFloat() 方法可解析一个字符串,并返回一个浮点数。

  • 字符串中只返回第一个数字。
  • 开头和结尾的空格是允许的。
  • 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN

// 小数
parseFloat( 123 ) // 123
parseFloat( 123.1234 ) // 123.1234
parseFloat( 1 2 3 ) // 1
parseFloat( 18 ACG ) // 18
parseFloat( hi 2 ) // NaN

© 版权声明

相关文章

暂无评论

none
暂无评论...