使用 <= 或 >= 运算符比较两个双精度值是否安全?[复制]

Is it safe to compare two doubles using <= or >= operators? [duplicate]

提问人:llswdon 提问时间:10/13/2021 更新时间:10/13/2021 访问量:91

问:

我知道使用运算符比较两个双精度是不正确的。但是比较两个像 or 这样的双打是否安全?==<=>=

与 Java 语言无关

评论

0赞 Yassir Khaldi 10/13/2021
在 Java 中比较双精度值和浮点数的正确方法:howtodoinjava.com/java-examples/correctly-compare-float-double

答:

-2赞 Utkarsh Sahu 10/13/2021 #1

实际上,这取决于您的需要。当然,运算符对于数据类型一点也不安全。但是使用像 和 可能不适合您的需要的运算符。因此,您可以将 double 转换为浮点数据类型,然后进行检查。我知道它不会为您提供精确度,但这是您必须做的方式。==double<=>=

那些想知道为什么不安全的人,试试吧==

System.out.println(0.1 + 0.2 == 0.3);

您将得到输出为 .false

评论

1赞 Federico klez Culloca 10/13/2021
让我直截了当地说:既然比较 s 不精确,我们应该将它们转换为 s,这样我们才能进一步降低精度?doublefloat
0赞 Utkarsh Sahu 10/14/2021
@FedericoklezCulloca 所以这就是你想要的,对吧。您不想要不必要的精度。试试我上面说的例子,你就会知道我在说什么。另请观看:stackoverflow.com/questions/588004/...