在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拋出java.io.FileNotFoundException
- 7. Java拋出NumberFormatException
- 8. java中的拋出規則
- 9. 在Java中拋出多個異常
- 10. 在java 8流foreach中拋出異常
- 11. 在Java中拋出簡單的異常
- 12. resultset.last()在java中拋出一個異常
- 13. java在我的代碼中拋出java.util.ConcurrentModificationException
- 14. 在java中訪問hdfs拋出錯誤
- 15. 在Java中使用vtd-xml拋出java.lang.UnsupportedClassVersionError
- 16. 如何在java中拋出SystemException?
- 17. Java中的拋出和拋出的區別澄清
- 18. Java void sendUrgentData()拋出SocketException
- 19. ReplaceAll java拋出異常
- 20. Java拋出與SortedSet異常
- 21. java拋出異常java.lang.IndexOutOfBoundsException:
- 22. REST API的Java:拋出java.lang.ClassNotFoundException:com.tutorialspoint.User
- 23. Java:拋出自身異常(?)
- 24. java:類拋出異常
- 25. java拋出檢查異常?
- 26. Java嘗試拋出問題
- 27. OrientDB Java jdbc拋出MethodNotFound
- 28. Java不拋出異常
- 29. Java - EnumSet.add(枚舉),拋出NullPointerException
- 30. Java:異常拋出類?
如果'浮點'標籤被應用於每個關於浮點數的問題,那麼您將會擁有另一個金徽章! – 2010-01-27 13:04:15
謝謝先生。它幫助了很多。 – Mohit 2010-01-27 13:24:12