2012-07-13 84 views
2

可能重複:
Why does parseInt(1/0, 19) return 18?parseInt函數方法返回一個垃圾值

我是從在JavaScript的表達式的結果解析的整數。 表達式是(a/b,24),它是一種方法,所以我沒有檢查零除。 和我解析的整數parseInt(a/b,24)

但我發現了一個不尋常的事情在它when a=1, b=0 the result was 151176378.

請解釋這種差異的原因。

欣賞任何建議。

+1

是不是'a = 1,b = 0 - a/b'會導致「被0除」的問題? – freefaller 2012-07-13 08:59:59

+0

它應該給出一個錯誤,但它正在返回該值,任何想法,如何? – 2012-07-13 09:00:54

+5

這是你的答案... http://stackoverflow.com/questions/11340673/why-does-parseint1-0-19-return-18 – freefaller 2012-07-13 09:06:53

回答

3

當你運行parseInt(a/b, 24)你試圖解析基地24的a/b的結果(不知道這個數字系統是什麼樣子)。

a/b返回Infinity其轉換爲字符串值"Infinity",然後使用基地24,所以你會得到與parseInt("Infinity", 24)相同的結果分析。您可以得到NaN的結果,其基數爲18或更小(即parseInt(1/0, 18))。

+1

您不能使用反斜槓'\\'作爲除法運算符。這導致語法錯誤! – core1024 2012-07-13 09:12:00

+0

@core1024,一定要記得打樣讀。 – detaylor 2012-07-13 09:52:33