美文网首页
Java中1/0和1.0/0的结果

Java中1/0和1.0/0的结果

作者: lenny611 | 来源:发表于2020-10-15 23:18 被阅读0次

    1/0结果老生常谈了,会抛出java.lang.ArithmeticException: / by zero;
    而1.0/0结果则是Infinity(无穷大),结果如下:


    image.png

    原因是因为IEEE 754标准,该标准规定浮点数/0等于正无穷或负无穷。而Java也正是这样做的。直接看下图:


    程序执行及结果
    由上图可以看到,浮点数定义了正无穷大以及负无穷大,且1.0/0可以得到正无穷大,-1.0/0可以得到负无穷大。再看看Double中关于无穷大的定义,定义如下:
    Double中无穷大以及非数的定义
    所以可以知道为什么1.0/0==Infinity为true(负数同理)了,因为它就是这么定义的。

    其中NaN表示非数,Java中提供Double.isNaN(double v)方法来判断是否为非数。
    同样的,Double.isInfinite(double v)方法可以判断是否为正无穷大或者负无穷大,该方法的具体定义如下:


    方法定义
    所以无论是正无穷大还是负无穷大,都可以使用该方法来判断。
    Double中还有一个方法Double.isFinite(double v)与Double.isNaN(double v)相反,它可以判断这个是否可以转化为一个数字。

    相关文章

      网友评论

          本文标题:Java中1/0和1.0/0的结果

          本文链接:https://www.haomeiwen.com/subject/qskapktx.html