无穷大和非数
package frank; public class App { public static void main(String[] args) { /* 除数不能为0, int a = 2; int b = 0; System.out.println(a/b);//编译通过,但是运行报错,by zero */ /* float a = 1.00F; float b = 0;//会自动变成浮点数的0.0 float c = a/b;//正无穷大 如果是一个负数除以0那就是负无穷大 float d = Float.NEGATIVE_INFINITY; System.out.println(c == d);//flase */ //System.out.println(0.0/0.0);//NaN //System.out.println(0.0/0.0==0.0/0.0);两个NaN不相等 //System.out.println(5.0/0==6.0/0);//所有正无穷大相等 //System.out.println(-5.0/0==6.0/0);//一个负无穷大不等于一个正无穷大 //System.out.println(-5.0/0==-6.0/0);//所有负无穷大相等 //System.out.println(0/0);//编译通过,但是运行报错,by zero
//System.out.println(5%0.0);//NaN 取余数的话不能是0,如果是就是运行报异常
//System.out.println(0.0*0.0);//0或者0.0相乘结果就会是0或者0.0
} }
总结:
1.两个整数:除数不能为0,为0运行就报错,编译不会出错。被除数为0的情况下结果也会为0。
//System.out.println(0/0);//编译通过,运行异常:by zero。 //System.out.println(0/5);//结果为:0 //System.out.println(5/0);//编译通过,运行异常:by zero。
2.两个浮点型:如果两个都是0.0的话结果就会是NaN,非数,除数为0.0的情况下就会是无穷大,被除数为0.0,除数大于等于1.00的数情况下为0.0。
System.out.println(0.0/0.0);//非数(NaN) System.out.println(5.0/0.0);//正无穷大,如果有任何一个数是负数,那么为负无穷大,两个位都是负数那么就是负负得正。 System.out.println(0.0/5.0);//为0.0,如果有任何一个数是负数,那么就-0.0。两个位都是负数那么就是负负得正。
3.除数为浮点数,被除数为整数。
System.out.println(0/5.0);//0.0 负数原理跟上面一样 System.out.println(0/0.0);//非数 System.out.println(5/0.0);//无穷大
4.除数为整数,被除数为浮点数。
System.out.println(0.0/0);//非数 System.out.println(0.0/5);//0.0 负数原理同上 System.out.println(5.0/0);//无穷大,负数原理同上
5.取模的情况。
//System.out.println(0%0);//编译通过,运行异常:by zero。 //System.out.println(-0%5);//0 //System.out.println(5%0);//编译通过,运行异常:by zero。 //System.out.println(0%0.0);//非数(NaN) //System.out.println(0%5.0);//0.0 //System.out.println(5%0.0);//非数(NaN) //System.out.println(0.0%0.0);//非数(NaN) //System.out.println(0.0%5.0);//0.0 //System.out.println(5.0%0.0);//非数(NaN) //System.out.println(0.0%0);//非数(NaN) //System.out.println(0.0%5);//0.0 //System.out.println(5.0%0);//非数(NaN)
各位童鞋在开发中一定要注意了。