浮点型的三个特殊值 Double.NEGATIVE_INFINITY Double.POSITIVE_INFINITY Double.NaN

  • Double.NEGATIVE_INFINITY 负无穷
  • Double.POSITIVE_INFINITY 正无穷
  • Double.NaN 非数

注意:浮点数才有无穷的概念,整数是没有的

比如:

int a = 1/0;//直接报错

抛出运算异常:Exception in thread "main" java.lang.ArithmeticException: / by zero


float m = (float)1.0/0;

结果:Infinity


double a =  -10.22 / 0;

结果:-Infinity

示例代码:

    public void testFun1() {
        //无穷  --一个浮点型(无论是基本类型还是引用类型)的正数除以0是无穷大,
        float a = (float) -10.22 / 0;

        System.out.println(a);
        if (Double.isInfinite(a) && a < 0.0) {
            System.out.println("a的值是负无穷");
        }
        if (Double.NEGATIVE_INFINITY == a) {
            System.out.println("----a的值是负无穷");
        }

        /*Double b=1029.98/0;*/
        Float b = new Float(1029.98 / 0);//float类型也是这么比较
        System.out.println(b);
        if (Double.isInfinite(b) && b > 0.0) {
            System.out.println("b的值是正无穷");
        }
        if (Double.POSITIVE_INFINITY == b) {
            System.out.println("-----b的值是正无穷");
        }

        //非数 0.0/0或者负数的平方根

        Double c = 0.0 / 0;
        System.out.println("c=0.0/0=" + c);
        Double d = Math.sqrt(-9.0);
        System.out.println("d=Math.sqrt(-9.0)=" + Math.sqrt(-9.0));
        /*Double.isNaN();判断是否是非数*/
        if (Double.isNaN(c)) {
            System.out.println("c是非数");
        }
        if (Double.isNaN(d)) {
            System.out.println("d是非数");
        }
//        if(Double.NaN==d){
//            System.out.println("d是非数");
//        }    这种写法是错误的
    }

结果是

-Infinity

a的值是负无穷

----a的值是负无穷

Infinity

b的值是正无穷

-----b的值是正无穷

c=0.0/0=NaN

d=Math.sqrt(-9.0)=NaN

c是非数

d是非
全部评论

相关推荐

浪子陪都:简历最优秀的地方放到了后面,国奖,校级奖学金这些是最亮眼的。说明你跟同级别的学生不一样。 建议台灯这个,PCB布局布线这个词汇不专业,业内是PCB Layout,第二,单片机的板子一般不用考虑SI,PI 都是低速信号,只要遵循3W原则就好了。 单片机的项目太low了,技能这块,你要看一下BOSS直聘的招聘要求,按照别人的要求写,一些关键词可以增加你简历被检索到的概率。 主修课程不用写,这个没有人去关注的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务