# Compare two float objects

ReturnMethodSummary
static intcompare(float f1, float f2)Compares the two specified float values.
intcompareTo(Float anotherFloat)Compares two Float objects numerically.
booleanequals(Object obj)Compares this object against the specified object.

static int compare(float f1, float f2) compares the two specified float values. It returns:

ValueMeaning
0if f1 is numerically equal to f2;
less than 0if f1 is numerically less than f2;
greater than 0if f1 is numerically greater than f2.
``````
public class Main {
public static void main(String[] args) {
Float floatObject1 = new Float("10.0001");
Float floatObject2 = new Float("10.0002");

System.out.println(Float.compare(floatObject1,floatObject2));

}
}
``````

The output:

``````
-1
``````

The following code create a NaN(Not a Number) float value by dividing 0, and then compare it with another float value:

``````
public class Main {
public static void main(String[] args) {
Float floatObject1 = new Float("10.0001");

Float floatObject2 = Float.valueOf((float)0.0/(float)(0.0));
System.out.println(floatObject2);

System.out.println(Float.compare(floatObject1,floatObject2));

}
}
``````

The output:

``````
NaN
-1``````

int compareTo(Float anotherFloat) compares two Float objects numerically.

Float.NaN is considered to be equal to itself and greater than all other float values including Float.POSITIVE_INFINITY. 0.0f is considered by this method to be greater than -0.0f.

It returns:

ValueMeaning
0if anotherFloat is numerically equal to this Float;
less than 0if this Float is numerically less than anotherFloat;
greater than 0if this Float is numerically greater than anotherFloat.
``````
public class Main {
public static void main(String[] args) {
Float floatObject1 = new Float("10.0001");

Float floatObject2 = Float.valueOf((float)0.0/(float)(0.0));
System.out.println(floatObject2);

System.out.println(floatObject1.compareTo(floatObject2));

}
}
``````

The output:

``````
NaN
-1``````