首页 > 编程知识 正文

js将数字转化为字符串,js将数字转化成字符串

时间:2023-05-04 09:33:16 阅读:222689 作者:2621

  在JS中,支持字符串类型和整数等数值类型互转;以下我们研究一下数据类型转换。

目录 1 parseInt:字符串转为整数1.1 基本用法1.2 进制转换 2. parseFloat:字符串转为浮点数3. Number:数值转换4. 总结

1 parseInt:字符串转为整数 1.1 基本用法

最简单的是将字符串直接转为十进制,此时parseInt()只需要传入一个参数即可。如下:

parseInt('123') // 123

当此时第一个字符为空格或者第一个为数字,其他的字符不能识别时,会自动去除空格以及不能被识别的字符,如下:

parseInt(' 20') // 20parseInt('8a') // 8parseInt('12**') // 12parseInt('12.34') // 12parseInt('15e2') // 15parseInt('15px') // 15

如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN,如下:

parseInt('abc') // NaNparseInt('.3') // NaNparseInt('') // NaNparseInt('+') // NaNparseInt('+1') // 1

若字符串为带小数点的浮点数,或者直接为浮点数,则parseInt()只取整数部分进行转化,如下:

parseInt('1.99') // 1parseInt(1.99) // 1

如果字符串以0x或0X开头,parseInt会将其按照十六进制数解析。如果字符串以0开头,将其按照10进制解析。如下:

parseInt('0x10') // 16parseInt('011') // 11 1.2 进制转换

  parseInt 方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。默认情况下,parseInt 的第二个参数为10,即默认是十进制转十进制。如下:

parseInt('1000') // 1000// 等同于parseInt('1000', 10) // 1000//转换指定进制数。parseInt('1000', 2) // 8parseInt('1000', 6) // 216parseInt('1000', 8) // 512

如果字符串包含对于指定进制无意义的字符,则从最高位开始,只返回可以转换的数值。如果最高位无法转换,则直接返回NaN。如下:

parseInt('1546', 2) // 1parseInt('546', 2) // NaN

以上“5”对于二进制来说是无意义字符,故而第一个返回 ‘1’,第二个返回’NaN’。
还有一个有趣的现象,如果parseInt 的第一个参数不是字符串,会被先转为字符串。如下:

parseInt(0x11, 36) // 43parseInt(0x11, 2) // 1// 等同于parseInt(String(0x11), 36)parseInt(String(0x11), 2)// 等同于parseInt('17', 36)parseInt('17', 2)

此时若第一个字符为0后面跟着有效字符,那么会被当做八进制数转化,要注意这个点。

2. parseFloat:字符串转为浮点数

parseFloat方法用于将一个字符串转为浮点数。

parseFloat('3.14') // 3.14

如果字符串符合科学计数法,则会进行相应的转换。如下:

parseFloat('314e-2') // 3.14parseFloat('0.0314E+2') // 3.14

与parseInt类似,如果字符串包含不能转为浮点数的字符,则不再进行往后转换,返回已经转好的部分,如果参数不是字符串,或者字符串的第一个字符不能转化为浮点数,则返回NaN。如下:

parseFloat('3.14more non-digit characters') // 3.14parseFloat('FF2') // NaNparseFloat('') // NaN 3. Number:数值转换

Number() 方法可以可识别的字符串直接转化为数值,当字符串内是整数则被转化为整数,是浮点数则被转化为浮点数,若出现不可识别的字符,则直接被转为NaN*。如下:

Number("0x55") // 85Number("55") // 55Number("55.5") // 55.5Number("55a") // NaN

Number() 方法会将空字符串转为0,而parseFloat会将空字符串转为NaN。
这些特点使得Number函数的转换结果不同于parseFloat。如下:

parseFloat(true) // NaNNumber(true) // 1parseFloat(null) // NaNNumber(null) // 0parseFloat('') // NaNNumber('') // 0 4. 总结

  从以上我们可以看出,parseInt 、parseFloat 以及Number的返回值只有两种可能,要么是数值,要么是 NaN,而对于不能识别的情况会自动截取或者返回NaN,此三种方法一般可以看情况选用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。