在Java中,(Number/0)拋出ArithmeticException while(Number/0.0)= Infinity。 這是爲什麼發生?在Java中拋出ArithmeticException
回答
因爲IEEE-754浮點數有無窮大的表示,而整數沒有。
換句話說,int
中的每個位模式表示正常整數;浮點值是相當具有+/-無窮更加複雜,「不是一個數字」(NaN)值,標準值,低於正常價值等
你也可以檢查哪些說JLS:
15.17.2除法運算符
另一方面,如果整數除法中除數的值爲0,則拋出 ArithmeticException。
浮點除法的結果由 IEEE算術的規格來確定: 如果結果是不NaN,則結果的符號是正的,如果兩個操作數具有 相同的符號,負如果操作數有不同的標誌。
將零非零有限值除以零將導致有符號無窮大。 標誌由上述規則決定。
謝謝先生。它幫助了很多。 – Mohit 2010-01-27 13:25:14
的IEEE浮點標準,幾乎所有現代處理器的支持,指定每個浮點運算,包括除數爲零,有一個明確的結果。標準支持有符號零,以及無窮大和NaN(不是數字)。有兩個零點,+0(正零點)和-0(零點零點),這樣可以消除分割時的不確定性。在IEEE 754算法中,當a爲正時,a + +爲正無窮大,a爲負時爲負無窮大,a =±0時爲NaN。取而代之,無窮符號會改變。
除零以外的整數通常與浮點處理方式不同,因爲結果沒有整數表示。有些處理器在嘗試將整數除以零時會生成一個異常,但其他處理器會簡單地繼續併爲該除法生成不正確的結果。結果取決於如何實施分割,並且可以是零,或者有時是最大可能的整數。
謝謝先生。它幫助了很多。 – Mohit 2010-01-27 13:24:41
- 1. FindControl()方法拋出ArithmeticException?
- 2. Java中的某些BigDecimal數字在分割時會導致拋出ArithmeticException
- 3. 爲什麼Java中兩個BigDecimal數字的劃分會拋出ArithmeticException?
- 4. 拋出:IllegalArgumentException在Java中URI
- 5. 在Java中拋出異常
- 6. 在Java中拋出異常
- 7. Java拋出NumberFormatException
- 8. Java拋出NoSuchElementException
- 9. Java拋出InputMismatchException
- 10. Java拋出java.io.FileNotFoundException
- 11. 在Java中拋出異常的方法拋出異常
- 12. ArithmeticException除以零
- 13. java中的拋出規則
- 14. 在java 8流foreach中拋出異常
- 15. 在Java中拋出多個異常
- 16. 在java中的拋出運動
- 17. 如何在java中拋出異常?
- 18. 拋出java.lang.ClassNotFoundException在java中的Ubuntu
- 19. 在Java中捕獲並拋出NullPointerException
- 20. 如何在java中拋出SystemException?
- 21. 在Java中使用vtd-xml拋出java.lang.UnsupportedClassVersionError
- 22. 在Java中反對類拋出異常
- 23. 如何在java中再次拋出IOException?
- 24. 在Java中拋出簡單的異常
- 25. java在我的代碼中拋出java.util.ConcurrentModificationException
- 26. resultset.last()在java中拋出一個異常
- 27. 在java中訪問hdfs拋出錯誤
- 28. 爲什麼在java中拋出異常而在C++中拋出異常?
- 29. 在Java中拋出自定義異常與在異常中拋出異常
- 30. Java EWS拋出NoClassDefFound
如果'浮點'標籤被應用於每個關於浮點數的問題,那麼您將會擁有另一個金徽章! – 2010-01-27 13:04:15
謝謝先生。它幫助了很多。 – Mohit 2010-01-27 13:24:12