首页 > 代码库 > 除数为0的几种情况测试

除数为0的几种情况测试

1、int类型,当除数为0时,编译可以通过,但运行时会抛出异常。

    static void test1(){
        int a = 10;
        int b = 0;
        int c = a / b; //java.lang.ArithmeticException: / by zero
        System.out.println(c);
    }

 

2、单精度浮点型,当除数为0时,编译通过,也可运行,运算结果为Infinity(无穷大),当把结果转换为int型时,会显示int所能存储的最大值(2的31次方-1)

    static void test2(){
        float a = 10.0f;
        float b = 0.0f;
        float c = a / b;
        System.out.println(c);//Infinity
        System.out.println((int)c);//2147483647
    }

 

3、多精度浮点型,当除数为0时,编译通过,也可运行,运算结果为Infinity(无穷大),当把结果转换为int型时,会显示int所能存储的最大值(2的31次方-1),把结果转换为单精度浮点型时,仍为Infinity(无穷大)

    static void test3(){
        double a = 10.0d;
        double b = 0.0d;
        double c = a / b;
        System.out.println(c);//Infinity
        System.out.println((int)c);//2147483647
        System.out.println((float)c);//Infinity
    }

 

注:本文所述内容基于JDK1.7。

 

水平有限,上述观点难免有误,仅供参考。欢迎牛们拍砖!

除数为0的几种情况测试