栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于Double的非空判断

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于Double的非空判断

今天在对elasticsearch聚合查询获取Double值时,忽然发现最大、最小、平均值分别为:

Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NAN

查询了Double的源码定义,其中:

Double:

public static final double POSITIVE_INFINITY = 1.0 / 0.0;    //正无穷大
public static final double NEGATIVE_INFINITY = -1.0 / 0.0; // 负无穷大
public static final double NaN = 0.0d / 0.0;                            //非数字

而且Float类里也同样定义了这三个常量。

java中整数类型的相除,除数不能为0。

        例如 5/0,在运行的时候会报错。

但是浮点型类型的相除,除数可以为0。

        例如5.0/0,在运行的时候正常,结果为Infinity。

        例如-5.0/0,在运行的时候正常,结果为-Infinity。

判断一个Double类型的值是否为NAN,需要用方法:isNAN();

判断一个Double类型的值是否为POSITIVE_INFINITY或者NEGATIVE_INFINITY或者,需要用方法:isInfinite()

Double.POSITIVE_INFINITY == Double.POSITIVE_INFINITY      -->  true

Double.NEGATIVE_INFINITY == Double.NEGATIVE_INFINITY   -->  true

Double.NAN == Double.NAN   -->  false   注意:NAN不等于自身

还有以下3点需要注意:

 1. 无限乘以0,结果为NAN

Double.POSITIVE_INFINITY * 0; --> NAN
Double.NEGATIVE_INFINITY * 0; --> NAN

 2.无限除以0,结果不变,还是无限

(Double.POSITIVE_INFINITY / 0) == Double.POSITIVE_INFINITY;   --> true
(Double.NEGATIVE_INFINITY / 0) == Double.NEGATIVE_INFINITY;   --> true

 3.无限做除了乘以0意外的运算,结果还是无限

Double.POSITIVE_INFINITY == (Double.POSITIVE_INFINITY + 600);  --> true
Double.POSITIVE_INFINITY == (Double.POSITIVE_INFINITY - 600);  --> true
Double.POSITIVE_INFINITY == (Double.POSITIVE_INFINITY * 600);  --> true
Double.POSITIVE_INFINITY == (Double.POSITIVE_INFINITY / 600);  --> true

Float里这三个常量也同理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号