Ein einfacher Vergleich von zwei Doppelwerten in Java erzeugt einige Probleme. Betrachten wir das folgende einfache Code -Snippet in Java. < /P>
Code: Select all
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));
}
}
< /code>
Der obige Code scheint true < /code> zurückzugeben, die Bewertung des Ausdrucks ((a-b) == 1.0) < /code>, aber nicht. Es gibt False
statt, da die Bewertung dieses Ausdrucks 0,999999999999999 beträgt, von dem tatsächlich erwartet wurde, dass er 1,0 beträgt, was nicht gleich 1.0 ist. Daher bewertet die Bedingung an boolean false . Was ist der beste und vorgeschlagene Weg, um eine solche Situation zu überwinden?