JavaScript中parseFloat()函数的使用示例
作者:Gloria-!
parseFloat主要将首位是数字的字符串转换成浮点型数字,如果字符串不是以数字开头,就会返回NaN,这篇文章主要给大家介绍了关于JavaScript中parseFloat()函数的使用示例,需要的朋友可以参考下
一、基本语法
parseFloat()
是 JavaScript 中用于将字符串解析为浮点数(十进制小数)的函数。
它会从字符串的开头提取数字部分,直到遇到无法解析为数字的字符为止。
以下是详细用法和注意事项:
parseFloat(string)
- 参数:string(要解析的字符串,非字符串类型会自动转换为字符串)。
- 返回值:成功解析–>返回对应的浮点数,失败解析–>返回
NaN
(非数值)。
二、使用示例
- 基本解析
console.log(parseFloat("3.14")); // 3.14 console.log(parseFloat("-12.5")); // -12.5 console.log(parseFloat("12.3e5")); // 1230000(科学计数法)
- 忽略非数字字符
console.log(parseFloat("123.45px")); // 123.45(提取到第一个非数字前) console.log(parseFloat("abc123")); // NaN(开头无有效数字) console.log(parseFloat(" 4.5 ")); // 4.5(忽略前后空格)
- 处理特殊值
console.log(parseFloat("Infinity")); // Infinity(特殊值) console.log(parseFloat("NaN")); // NaN(无法解析为数值) console.log(parseFloat("Infinity")); // Infinity console.log(parseFloat("-Infinity")); // -Infinity console.log(parseFloat("NaN")); // NaN console.log(parseFloat("0x10")); // 16(十六进制) console.log(parseFloat("0b10")); // 2(不支持,返回 NaN) console.log(parseFloat("0o10")); // 8(八进制) console.log(parseFloat("0.1e2")); // 10(科学计数法) console.log(parseFloat("0.1e-2")); // 0.001(科学计数法) console.log(parseFloat("0.1e+2")); // 10(科学计数法) console.log(parseFloat("0.1e+2.3")); // 10(忽略后面的部分) console.log(parseFloat("0.1e+2abc")); // 10(忽略后面的部分) console.log(parseFloat("0.1e+2.3abc")); // 10(忽略后面的部分) console.log(parseFloat("0.1e+2abc")); // 10(忽略后面的部分) console.log(parseFloat("0.1e+2 .3abc")); // 10(忽略后面的部分)
- 非字符串参数
console.log(parseFloat(123)); // 123(数字 → 字符串) console.log(parseFloat(true)); // NaN(true → "true") console.log(parseFloat(null)); // NaN(null → "null") console.log(parseFloat([])); // 0(空数组 → "" → 0?) // 注意:空数组会被转换为空字符串,parseFloat("") 返回 NaN,但某些浏览器可能返回 0。
三、注意事项
与 parseInt() 的区别
函数 解析目标 进制处理 示例
parseFloat() 浮点数 仅十进制 parseFloat(“0xA”) → 0
parseInt() 整数 可指定进制(默认十进制) parseInt(“0xA”, 16) → 10与 Number() 的区别
- Number() 会严格转换整个字符串:
console.log(Number("123.45px")); // NaN console.log(parseFloat("123.45px")); // 123.45
- 科学计数法支持
console.log(parseFloat("1.2e3")); // 1200 console.log(parseFloat("1E-3")); // 0.001
- 前导零与进制问题
parseFloat() 不解析八进制或十六进制:
console.log(parseFloat("0xA")); // 0(仅解析到第一个非数字字符) console.log(parseFloat("0123")); // 123(前导零被忽略)
四、实际应用场景
- 提取带单位的数值
const width = "200.5px"; const numericValue = parseFloat(width); // 200.5
- 处理用户输入
const userInput = prompt("请输入价格:"); const price = parseFloat(userInput); if (!isNaN(price)) { console.log(`价格是:${price}`); } else { console.log("输入无效!"); }
- 安全转换数值
// 避免直接转换潜在的非数字字符串 function safeParse(str) { const num = parseFloat(str); return isNaN(num) ? 0 : num; } console.log(safeParse("abc")); // 0
五、总结
- 用途:从字符串中提取浮点数,适合处理混合字符的数值(如 “100px”)。
- 特点:自动忽略前导空格,支持科学计数法,不识别进制前缀。
- 陷阱:无法解析非数字开头字符串时返回 NaN,需结合 isNaN() 验证结果。
- 替代方案:需要严格解析时,可用正则表达式或 Number() 转换。
到此这篇关于JavaScript中parseFloat()函数使用的文章就介绍到这了,更多相关JS parseFloat()函数使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!