JavaScript parseFloat()

admin發表於2018-11-09

此方法可以解析一個字串,並返回一個浮點數。

parseFloat方法屬於全域性物件,所以無需使用物件呼叫。

轉換需要遵循一定的規則,規則如下:

(1).如果字串不包含數數字,轉換失敗,返回NaN。

(2).如果字串的起始字元為非數字,轉換失敗,返回NaN。

(3).字串起始位置的一個或者多個空白符會被忽略。

(4).如果引數是數字,首先將數字轉換為字串再進行解析轉換。

(5).如果引數是物件,那麼會首先將其轉換為對應的值型別資料。

(6).如果在解析字串過程中,遇到非數字字元,那將會忽略該字元和其後的所有字元,並返回已經解析到的浮點數,但是如下非數字字元除外:正負號(+和-),小數點或者科學記數法的指數(e或E)。

更多內容參閱JavaScript Global 物件一章節。

特別說明:ES2015將此方法歸於Number物件,功能完全一致。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
parseFloat(string)

引數解析:

(1).string:將要被解析為浮點數的引數。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let str="螞蟻部落";
console.log(parseFloat(str));

程式碼執行效果截圖如下:

螞蟻部落演示

字串"螞蟻部落"全都是由非數字字元組成,毫無疑問轉換失敗,所以方法返回值為NaN。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let str="ant888";
console.log(parseFloat(str));

程式碼執行效果截圖如下:

螞蟻部落演示

字串"ant888"的起始字元是非數字,那麼轉換失敗,返回NaN。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let str="  888";
console.log(parseFloat(str));

程式碼執行效果截圖如下:

螞蟻部落演示

字串起始位置的一個或者多個空白字元會被忽略。

所以上述字串會被轉換成對應的數字。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let str="123abc";
console.log(parseFloat(str));

程式碼執行效果截圖如下:

螞蟻部落演示

上述程式碼轉換後的返回值是數字123。

如果解析的字串過程中,遇到非數字字元,那麼此字元包括後面的所有字元都會被忽略。

當然也有例外的非數字字元,可以參閱關於轉換規則的第6條介紹。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let obj={
  webName:"螞蟻部落",
  toString:function(){
    return "88"
  }
};
console.log(parseFloat(obj));

程式碼執行效果截圖如下:

螞蟻部落演示

方法的引數是一個物件,依然可以轉換成功。

程式碼分析如下:

(1).首先將物件轉換為對應的值型別資料,然後再判斷是否可以轉換。

(2).物件將進行隱式資料型別轉換,呼叫toString方法,返回字串"88"。

(3).那麼很自然,返回轉換結果為88。

關於資料型別轉換可以參閱JavaScript 資料型別轉換一章節。

相關文章