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