Why Float and Double Outputs Are Different?

java dev.to
float f = Long.MAX_VALUE;
double d = Long.MAX_VALUE;

System.out.println("Float max value is : "+ f);
System.out.println("Double max value is : "+ d);
Enter fullscreen mode Exit fullscreen mode

===============================================
Float max value is : 9.223372E18
Double max value is : 9.223372036854776E18
===============================================*/

When we assign Long.MAX_VALUE to float and double, both try to store a very large number. But float cannot keep many digits accurately, so Java rounds the value and shows a shorter number like 9.223372E18. double has higher precision, so it can store more digits and shows a more accurate value like 9.223372036854776E18. That’s why both outputs are different even though they come from the same value.

Source: dev.to

arrow_back Back to Tutorials