在一本书上看到这么一条:整数除以0会抛出异常,浮点数除以0则会得到无穷大会NaN这个是什么原因,请大牛们讲讲,不会的进来学习下

解决方案 »

  1.   

    因为 IEEE 754 有规定无穷大是怎么表示的,因此被除数不为 0,除数是 0 的话计算结果是正无穷或者是负无穷,如果被除数和除数都是 0 的话,那么计算结果是 NaN整数不在是 IEEE 754 规定的,也没有无穷大的表示,因此只能抛出异常了。
      

  2.   

    火龙果好给力呀@刚才看了下IEEE 754,这个是浮点数运算的标准。这个整数除以零,这个应该是整数的运算,难道计算机中的除法运算都是按浮点数的计算规则来进行的?计算机组成原理 忘光了,还请赐教。
      

  3.   


    哈哈,我说的是 IEEE 哦,中文名称应该叫:(美国)电气电子工程师协会。IEEE 也制定一些电气与电子方面的标准。
      

  4.   

    嗯  Ieee  以前学 计算机原理 了解过,可以说这种东西是硬件的  不是软件决定的
      

  5.   

    除0就是会抛异常,和ieee没关系吧
      

  6.   

    不能除0,应该让数学家来回答吧,这个不在java范围
      

  7.   

    NaN 是IE的表示吧 java就报错了.
      

  8.   

    浮点的话,被除数除数都是0会得到NaN,被除数不是0除数是0会根据被除数正负得到+/-Infinity
    整数被除数十0抛异常话说,能把IEEE 754和IE扯上关系……真强大啊……
      

  9.   

    float a = 10;
    int b = 10;
    System.out.println("float a/0="+String.valueOf(a/0));
    System.out.println("int b/0="+String.valueOf(b/0));输出:Exception in thread "Main Thread" java.lang.ArithmeticException: / by zero
    at Test.main(Test.java:250)
    float a/0=Infinity
      

  10.   

    google或者baidu一下IEEE 754吧嗯,上面15楼给出了例子,浮点数a/0输出了Infinity,而整数b/0而抛出了异常
      

  11.   

    结论,干JAVA的大部分都不是科班出身。