无穷大和非数

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)

  

  各位童鞋在开发中一定要注意了。

posted on 2013-07-10 22:13  wp456  阅读(450)  评论(0)    收藏  举报

导航