---
# System prepended metadata

title: 轉換成數字的三種方法比較：parseInt、parseFloat 與 Number

---

# 轉換成數字的三種方法比較：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.若包含有效的進位系統，則依照進位系統轉換為十進制。



 