Related Articles

Related Articles

Comparison of double and float primitive types in Java
  • Last Updated : 03 Jan, 2020

Consider the following two codes in Java:

filter_none

edit
close

play_arrow

link
brightness_4
code

// This program prints true
class Geeksforgeeks {
  public static void main(String args[]) {
    float f = 5.25f;
    double d = 5.25
    System.out.println(f == d);
  }
}

chevron_right


Output

true
filter_none

edit
close

play_arrow

link
brightness_4
code

// But this program prints false.
class Geeksforgeeks {
  public static void main(String args[]) {
    float f = 5.1f;
    double d = 5.1;
    System.out.println(f == d);
  }
}

chevron_right


Output

false

The output is true in the first example and false in second. We know that precisions of float and double are different. Size of mantissa for float is 24 and 53 for double.

Let us consider the first example of 5.25. Binary representation of integral part is 101 and binary representation of part of the dot is 0.01 (needs only two bits)

Let us consider the second example 5.1. The binary representation of an integral part is the same. But binary representation of 0.1 is 1/16 + 1/32 + 1/64 + 1/128 ….. and so on until we reach the end of mantissa or sum becomes more than 0.1. In this case, we reach the end of mantissa and therefore the value of 5.1 becomes different in float and double.

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :