2016-09-15 80 views
2

我正在使用java jdk1.8版本。 (0) 它顯示消息「Infinity」。它應該在運行時顯示ArithmeticException:/zero.What可能是原因。Java異常處理:/ zeo

class division 
{ 
     public static void main(String args[]) 
     { 
      float a=10,b=0; 
      System.out.println(a/b); 
     } 
} 
+4

可能的重複[除以零:int與浮點數](http://stackoverflow.com/questions/4480020/division-by-zero-int-vs-float) –

+0

是的,正如我所看到的我將變量聲明爲int,然後出現ArithmaticException,但是在float或double的情況下,它顯示「Infinity」。爲什麼?我需要更簡單的答案。 –

+0

[已鏈接的問題](http://stackoverflow.com/questions/4480020/division-by-zero-int-vs-float)已經有六個答案。閱讀後不清楚什麼? –

回答

6

不,它不應該發出異常。

Java堅持IEEE754浮點標準。這表明,如果分子爲正,則由零浮點除的分數產生NaN,如果的分子也爲零,則如果分子爲正,則爲無窮大;如果分子爲負,則爲無窮大。

0

在數學上,

X/0可以是:

  • 未知如果x = 0,因爲0/0 = P可以很容易地解決,以0 = 0 * P,這對於任何爲真因爲x!= 0是不真實且矛盾的,所以無限,因爲如果我們有一個數y無限接近於0,那麼x/0 = ,舍入爲0,則x/0〜x/y = + - 無窮大,這取決於x和y的符號

由於@Bathsheba在他的回答中指出:

對浮點的IEEE754標準的Java堅持。

因此,如果我們看一看Wikipedia,例如,我們可以看到:

除數爲零(在有限的操作數的運算給出一個確切的 無限的結果,例如,1/0或log(0))(默認返回±無窮大)。

+1

注意,雖然如此,從數學上講,對於非零x,log(0)比x/0更邪惡*無窮大。 – Bathsheba

+0

@Bathsheba,假設0是一個無限小的正實數,那麼結果將是負無窮大。如果它恰好爲0,或者爲負0,那麼它在域之外。當然,我假設對數的底數是一個大於1的實數。0到1之間的一個鹼基會顛倒圖片,更不用說負數鹼基。所以,這是邪惡的,但我想知道你指的是哪個邪惡的價值屬性? –

+1

log(0)無窮大的*類型*或*順序*給數學家分解。 – Bathsheba