0
我嘗試這樣做:NaN是否等於0?
int x = (int)Math.sqrt(-1); //Math.sqrt(-1) returns NaN
System.out.println(x);
並且輸出是:
轉換
NaN
爲整數類型,或執行一個整數操作,其浮點數int等價物會產生NaN
,通常會引發異常。在Java中,這樣的操作拋出的java.lang.ArithmeticException
實例,但我的代碼運行正常,沒有任何異常,且輸出爲0
。
有什麼理由呢?
那麼,爲什麼我的代碼給出輸出'0'? – Hackerdarshi
@Bathsheba雖然這回答了題目中的問題,但提供解釋代碼片斷的行爲方式會有所幫助。 – SarathChandra
@Hackerdarshi [這個問題是重複的問題](http://stackoverflow.com/questions/5876369/why-does-casting-double-nan-to-int-not-throw-an-exception-in -java)涵蓋了這一點。 – khelwood