gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:33:18 24 4
gpt4 key购买 nike

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 因此,条件评估为 boolean 值 false。克服这种情况的最佳方法和建议方法是什么?

最佳答案

基本上你不应该做精确的比较,你应该这样做:

double a = 1.000001;
double b = 0.000001;
double c = a-b;
if (Math.abs(c-1.0) <= 0.000001) {...}

关于java - 如何比较 Java 中的两个 double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com