源码

如何比较Java中的两个double值?


Java中两个double值的简单比较会产生一些问题.让我们考虑Java中的以下简单代码片段.

package doublecomparision;

final public class DoubleComparision 
{
    public static void main(String[] args) 
    {
        double a = 1.000001;
        double b = 0.000001;

        System.out.println("/n"+((a-b)==1.0));
    }
}

上面的代码似乎返回true,表达式的评估((a-b)== 1.0)但它没有.它返回false,因为此表达式的计算结果为0.9999999999999999,实际上预期为1.0,不等于1.0,因此,条件计算结果为布尔值false.克服这种情况的最佳方法是什么?

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/ruhebijiaojavazhongdelianggedoublezhi.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 20, 2019 at 06:40 上午

热评文章