Skip to content

Latest commit

 

History

History
87 lines (63 loc) · 2.24 KB

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

File metadata and controls

87 lines (63 loc) · 2.24 KB

如何在 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