JavaScript中parseFloat()函數(shù)的使用示例
一、基本語法
parseFloat() 是 JavaScript 中用于將字符串解析為浮點(diǎn)數(shù)(十進(jìn)制小數(shù))的函數(shù)。
它會從字符串的開頭提取數(shù)字部分,直到遇到無法解析為數(shù)字的字符為止。
以下是詳細(xì)用法和注意事項(xiàng):
parseFloat(string)
- 參數(shù):string(要解析的字符串,非字符串類型會自動轉(zhuǎn)換為字符串)。
- 返回值:成功解析–>返回對應(yīng)的浮點(diǎn)數(shù),失敗解析–>返回
NaN(非數(shù)值)。
二、使用示例
- 基本解析
console.log(parseFloat("3.14")); // 3.14
console.log(parseFloat("-12.5")); // -12.5
console.log(parseFloat("12.3e5")); // 1230000(科學(xué)計數(shù)法)
- 忽略非數(shù)字字符
console.log(parseFloat("123.45px")); // 123.45(提取到第一個非數(shù)字前)
console.log(parseFloat("abc123")); // NaN(開頭無有效數(shù)字)
console.log(parseFloat(" 4.5 ")); // 4.5(忽略前后空格)
- 處理特殊值
console.log(parseFloat("Infinity")); // Infinity(特殊值)
console.log(parseFloat("NaN")); // NaN(無法解析為數(shù)值)
console.log(parseFloat("Infinity")); // Infinity
console.log(parseFloat("-Infinity")); // -Infinity
console.log(parseFloat("NaN")); // NaN
console.log(parseFloat("0x10")); // 16(十六進(jìn)制)
console.log(parseFloat("0b10")); // 2(不支持,返回 NaN)
console.log(parseFloat("0o10")); // 8(八進(jìn)制)
console.log(parseFloat("0.1e2")); // 10(科學(xué)計數(shù)法)
console.log(parseFloat("0.1e-2")); // 0.001(科學(xué)計數(shù)法)
console.log(parseFloat("0.1e+2")); // 10(科學(xué)計數(shù)法)
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(忽略后面的部分)
- 非字符串參數(shù)
console.log(parseFloat(123)); // 123(數(shù)字 → 字符串)
console.log(parseFloat(true)); // NaN(true → "true")
console.log(parseFloat(null)); // NaN(null → "null")
console.log(parseFloat([])); // 0(空數(shù)組 → "" → 0?)
// 注意:空數(shù)組會被轉(zhuǎn)換為空字符串,parseFloat("") 返回 NaN,但某些瀏覽器可能返回 0。
三、注意事項(xiàng)
與 parseInt() 的區(qū)別
函數(shù) 解析目標(biāo) 進(jìn)制處理 示例
parseFloat() 浮點(diǎn)數(shù) 僅十進(jìn)制 parseFloat(“0xA”) → 0
parseInt() 整數(shù) 可指定進(jìn)制(默認(rèn)十進(jìn)制) parseInt(“0xA”, 16) → 10與 Number() 的區(qū)別
- Number() 會嚴(yán)格轉(zhuǎn)換整個字符串:
console.log(Number("123.45px")); // NaN
console.log(parseFloat("123.45px")); // 123.45
- 科學(xué)計數(shù)法支持
console.log(parseFloat("1.2e3")); // 1200
console.log(parseFloat("1E-3")); // 0.001
- 前導(dǎo)零與進(jìn)制問題
parseFloat() 不解析八進(jìn)制或十六進(jìn)制:
console.log(parseFloat("0xA")); // 0(僅解析到第一個非數(shù)字字符)
console.log(parseFloat("0123")); // 123(前導(dǎo)零被忽略)
四、實(shí)際應(yīng)用場景
- 提取帶單位的數(shù)值
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("輸入無效!");
}
- 安全轉(zhuǎn)換數(shù)值
// 避免直接轉(zhuǎn)換潛在的非數(shù)字字符串
function safeParse(str) {
const num = parseFloat(str);
return isNaN(num) ? 0 : num;
}
console.log(safeParse("abc")); // 0
五、總結(jié)
- 用途:從字符串中提取浮點(diǎn)數(shù),適合處理混合字符的數(shù)值(如 “100px”)。
- 特點(diǎn):自動忽略前導(dǎo)空格,支持科學(xué)計數(shù)法,不識別進(jìn)制前綴。
- 陷阱:無法解析非數(shù)字開頭字符串時返回 NaN,需結(jié)合 isNaN() 驗(yàn)證結(jié)果。
- 替代方案:需要嚴(yán)格解析時,可用正則表達(dá)式或 Number() 轉(zhuǎn)換。
到此這篇關(guān)于JavaScript中parseFloat()函數(shù)使用的文章就介紹到這了,更多相關(guān)JS parseFloat()函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)Excel導(dǎo)出功能的完整代碼示例
最近在做一個項(xiàng)目,涉及到導(dǎo)出數(shù)據(jù)到Excel表格,下面這篇文章主要給大家介紹了關(guān)于JavaScript實(shí)現(xiàn)Excel導(dǎo)出功能的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-08-08
js字符串替換所有的指定字符或文字(推薦replaceAll方法)
要實(shí)現(xiàn)js字符串替換所有的某個字符,推薦大家使用replaceAll方法,默認(rèn)不是所有瀏覽器都兼容,所以這里給出一個解決方案,需要的朋友可以參考下2014-07-07
javascript基于HTML5 canvas制作畫箭頭組件
該組件實(shí)現(xiàn)了根據(jù)箭頭起止點(diǎn)坐標(biāo)畫箭頭功能。目前組件可設(shè)置箭頭形狀(大小和角度)。2014-06-06
javascript動態(tài)控制服務(wù)器控件實(shí)例
在頁面中放入一個DropDownList控件,并添加一項(xiàng),用來分析其產(chǎn)生的HTML代碼,這樣在使用js進(jìn)行動態(tài)控制時,將會非常清晰2014-09-09
js實(shí)現(xiàn)輪播圖的兩種方式(構(gòu)造函數(shù)、面向?qū)ο?
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)輪播圖的兩種方式,一是構(gòu)造函數(shù)、另一種是面向?qū)ο蠓绞椒绞?,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
JS實(shí)現(xiàn)表格數(shù)據(jù)各種搜索功能的方法
這篇文章主要介紹了JS實(shí)現(xiàn)表格數(shù)據(jù)各種搜索功能的方法,可實(shí)現(xiàn)忽略大小寫,模糊搜索,多關(guān)鍵搜索等功能,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03

