2011-05-09 87 views
0

可能重複:
Javascript parseInt gives very unexpected resultsparseInt函數在Javascript中並沒有給予回覆期望值

有人能解釋爲什麼要使用JavaScript解釋parseInt(08)parseInt(09)爲零,但確實的一切權利在01〜07 ?

parseFloat會給我這些值的正確值,我只是找不到答案,爲什麼JavaScript只會對8s和9s做到這一點。

您的信息:前導零是從時間(小時:分鐘)。

請看下面的鏈接以獲得更好的示例:http://jsfiddle.net/NPtzA/3/ 在那裏您可以看到這種意外的行爲。

+0

正如一個側面說明:如果你的整個字符串是一個數字(即無後綴) ,您可以使用一元'+'將其轉換爲(十進制)整數或浮點值:'var number = + numberString;'(它也更快)。 – 2011-05-09 09:43:07

+0

嘗試'parseInt(08,10)'和'parseInt(09,10)'。 – robertc 2011-05-09 09:43:46

+0

是的!你是對的,感謝你找到了這個,現在我也可以在相關的問題中看到它! – Tim 2011-05-09 09:44:04

回答

0

parseInt返回0,因爲函數試圖確定正在查看的數字系統的正確基礎。

無論是好事還是壞事,JavaScript的號碼與一家領先的0都被視爲八進制,這意味着沒有08或09

希望有所幫助。

編輯:檢查出我的小提琴編輯這增加10參數parseInt改變數字系統,它使用http://jsfiddle.net/jbrooksuk/NPtzA/5/