# 轉換成數字的三種方法比較:parseInt、parseFloat 與 Number # parseInt() ### 1.語法:parseInt(string, radix) #### * string:欲轉換的值,若第一個字元就無法被解析,則會回傳NaN,例如:'s567gu'這個字串因為第一個字元為's',無法轉換為數字,因此會回傳NaN。 #### * radix:表示進位制,例如十進位、十六進位等等。依照不同情況可能有不同的預設值,因此一定要設定該值以避免造成錯誤。 ### 2.轉換過程:會忽略前後空白,當遇到無法解析的字元,如英文字母,則會停止轉換於此字元,並回傳目前為止解析的結果。 ### 3.範例: ```javascript= console.log(parseInt('6y8494',10))//字元y無法解析成數字,故回傳6 console.log(parseInt(''))//回傳NaN console.log(parseInt(' 578',10))//空白會被忽列,故回傳578 console.log(parseInt(39.1111,10))//回傳39 ``` ## parseFloat() ### 1.語法:parseFloat(string) #### *string:與parseInt相同 ### 2.轉換過程:與parseFloat相同,會忽略前後空白,當遇到無法解析的字元,如英文字母,則會停止轉換於此字元,並回傳目前為止解析的結果。與parseFloat的差異在於parseFloat()僅能分析十進位,且由於parseFloat()用來解析浮點數,因此能解析出第一個小數點。 ### 3.範例: ```javascript= parseFloat("67.78") // 回傳67.78 parseFloat("67.78.89") // 因為parseFloat()僅能解析出第一個小數點,故仍回傳67.78 ``` ## Number() ### 1.語法:Number(value) ### 2.轉換過程: #### (1)若值為undefined,則回傳NaN #### (2)若值為null,則回傳0 #### (3)若值為布林值,true回傳1;false則回傳0 #### (4)若值為Number,則直接回傳該值 #### (5)若值為String,則根據以下規則判斷: ##### a.僅包含數字與浮點數,則忽略前後空白,回傳該值 ##### b.若包含有效的進位系統,則依照進位系統轉換為十進制。