姬長信(Redy)

如何比较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.克服这种情况的最佳方法是什么?