2011-09-06 157 views

回答

13

如果參數從0開始,它將被解析爲八進制數,而08不是有效的八進制數。提供第二個參數10,它指定基數 - 基數爲10的數字。

document.write(parseInt("08", 10)); 
2

你想parseInt('08', 10)告訴它解析爲十進制。

5

使用本變形例

parseInt(string, radix)

如果省略radix參數

parseInt("08",10); 

規則,JavaScript的假定:

  • 如果字符串以 「0x」 開始,基數是16(十六進制)
  • 如果字符串以「0」開始,則基數爲8(八進制)。此功能已被棄用
  • 如果字符串以其他任何值開頭,基數是10(十進制)
1

試試這個:

parseInt('08', 10) 

就會產生8

2

你只使用以錯誤的方式輸入該函數的參數。有關更多信息,請查詢this。基本上:

parseInt()函數解析一個字符串並返回一個整數。

基數參數用於指定其中標號系統 使用,例如,16(十六進制)的一個基數表示該串中的 數量應該從一個十六進制數被解析到一個 十進制數爲。

如果省略radix參數,JavaScript的假定: 如果字符串以「0x」開始,基數是16(十六進制)如果 字符串用「0」開始,基數是8(八進制) 。此功能 棄用如果字符串以其他任何值開頭,基數是10 (十進制)

所以07和08被解析成八進制。這就是爲什麼07是7和08是0(這是四捨五入最接近)