Java中涉及正无穷、负无穷 、NaN的算术运算测试_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java中涉及正无穷、负无穷 、NaN的算术运算测试

Java中涉及正无穷、负无穷 、NaN的算术运算测试

 2014/3/26 6:59:43  X_Goder  程序员俱乐部  我要评论(0)
  • 摘要:Java中含有正无穷(Double.POSITIVE_INFINITY=1.0/0.0)、负无穷(Double.NEGATIVE_INFINITY=-1.0/0.0)和非数字(Double.NaN=0.0d/0.0)的定义,这些定义都是Double类中的静态常量,如果在我们的一般的算术运算中加入了这些常量,那么算术的结果是否符合数学上的正确性呢?测试代码如下:doublea=Double.POSITIVE_INFINITY;System.out.println("a="+a);System
  • 标签:测试 Java

Java中含有正无穷(Double.POSITIVE_INFINITY = 1.0 / 0.0)、负无穷(Double.NEGATIVE_INFINITY = -1.0 / 0.0)和非数字(Double.NaN = 0.0d / 0.0)的定义,这些定义都是Double类中的静态常量,如果在我们的一般的算术运算中加入了这些常量,那么算术的结果是否符合数学上的正确性呢?测试代码如下:

class="java">	double a = Double.POSITIVE_INFINITY;
		System.out.println("a="+a);
		System.out.println("a+100.0=" + (a + 100.0));
		System.out.println("a+Double.MAX_VALUE=" + (a + Double.MAX_VALUE));
		System.out.println("a - Double.MAX_VALUE=" + (a - Double.MAX_VALUE));
		System.out.println("-a=" + (-a));
		System.out.println("a - a=" + (a - a));
		
		System.out.println("NaN+100=" + (Double.NaN+100));
		System.out.println("NaN==NaN="+(Double.NaN==Double.NaN));
		System.out.println("NaN+Double.MAX_VALUE=" + (Double.NaN+Double.MAX_VALUE));
		System.out.println("NaN<Double.MAX_VALUE="+(Double.NaN<Double.MAX_VALUE));
		System.out.println("NaN>Double.MAX_VALUE="+(Double.NaN>Double.MAX_VALUE));
		System.out.println("NaN==Double.MAX_VALUE="+(Double.NaN==Double.MAX_VALUE));
		System.out.println("a == a=" + (a == a));
		System.out.println("100 < a=" + (100 < a));
		System.out.println("-a < 0=" + (-a < 0));
		System.out.println("Double.MAX_VALUE < a=" + (Double.MAX_VALUE < a));

?输出结果为:

a=Infinity
a+100.0=Infinity
a+Double.MAX_VALUE=Infinity
a - Double.MAX_VALUE=Infinity
-a=-Infinity
a - a=NaN
NaN+100=NaN
NaN==NaN=false
NaN+Double.MAX_VALUE=NaN
NaN<Double.MAX_VALUE=false
NaN>Double.MAX_VALUE=false
NaN==Double.MAX_VALUE=false
a == a=true
100 < a=true
-a < 0=true
Double.MAX_VALUE < a=true

?结论:

(1)正无穷和负无穷仍然保持数学上的定义;

(2)NaN是非数字,参与算术运算都为NaN,与其他数字比较结果都为false(包括自己)。

?

发表评论
用户名: 匿名