parseFloat()函数用于解析一个字符串,返回对应的浮点数。如果给定值不能转换为数值,则会返回“NaN”。
如果在解析过程中遇到了正负号(+ / -)、数字0~9、小数点或者科学计数法(e / E)以外的字符,则会忽略从该字符开始至结束的所有字符,然后返回当前已经解析的字符的浮点数形式。
正负号必须出现在字符的第一位,而且不能连续出现
parseFloat('+1.2'); // 1.2
parseFloat('-1.2'); // -1.2
parseFloat('++1.2'); // NaN,符号不能连续出现
parseFloat('--1.2'); // NaN,符号不能连续出现
parseFloat('1+1.2'); // 1,'+'出现在第二位,不会当作符号位处理
字符串前面的空白符会直接忽略,如果第一个字符就无法解析,则会直接返回“NaN”
parseFloat(' 1.2'); // 1.2
parseFloat('f1.2'); // NaN
对于字符串中出现的合法科学运算符e,进行运算处理后会转换成浮点型数
parseFloat('4e3'); // 4000
parseInt('4e3', 10); // 4
parseFloat()函数在处理'4e3'时,会先进行科学计数法的运算,即4e3 = 4×1000 = 4000,然后转换成浮点型数,返回“4000”;
parseInt()函数在以十进制处理'4e3'时,不会进行科学计数法的运算,而是直接从第一个字符开始匹配,最终匹配成功的字符为'4',转换成整型后,返回整数“4”。
对于小数点,只能正确匹配第一个,第二个小数点是无效的,它后面的字符也都将被忽略。
console.log(parseFloat('11.20')) // 11.2
console.log(parseFloat("11.3.1")) // 11.3
console.log(parseFloat("123cF")) // 123
console.log(parseFloat("0xA")) // 0
console.log(parseFloat("22.1")) // 22.1
console.log(parseFloat("22.2.2")) // 22.12
console.log(parseFloat("0901.3")) // 901.3