parsetInt与parseFloat的区别还是很大的,简单来说,parseInt解析字符串为整数,parseFloat解析字符串为小数。
首先说parseInt()
1.可以接受两个参数,第一个为字符串,第二个为进制数,第二个参数不是必须的,如果没有第二个参数,默认为十进制。
2.如果参数字符串的第一个字符不能被解析成为数字,则parseInt
返回NaN
.
parseFloat()
1.只接受一个参数,将字符串解析为浮点数(十进制)
2.如果参数字符串的第一个字符不能被解析成为数字,则parseFloat
返回NaN
.
3.parseFloat(),解析过程中遇到了正负号(+或-),数字(0-9),小数点,或者科学记数法中的指数(e或E),那就继续解析。如果遇到其他字符,它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数.同时参数字符串首位的空白符会被忽略。
4.parseFloat(),可以把含e的浮点数解析为非科学计数法表示,如果解析后的数字位数超过21位,解析后仍为科学计数法表示。
第四点有点困惑,如果有大神知道位数超过21位后为什么会用科学计数法表示,请不吝赐教。
parseFloat(‘9e20‘) //900000000000000000000
parseFloat(‘1e21‘) //1e+21