Skip to main content

Best way to convert float to int in Java 8?


Most of the time, Java developers have to do type conversion. In this example, I will cover the conversion of float datatype to int. There are several ways to achieve this.

Solution 1

public class FloatToIntCasting {
    
    
    public static void main( String[] args ) {
        
        float value = 0.9f;
        
        System.out.println( "0.9f converted to int : " +  (int) value );
        
        value = 1.1f;
        
        System.out.println( "1.1f converted to int : " + (int) value );
        
    }
}



Output 
0.9f converted to int : 0
1.1f converted to int : 1

As we can see in the above example, casting a float to int results in downcasting. It simply removes the fraction part and returns the value.

Solution 2


public class FloatToIntUsingMathRound {

    public static void main( String[] args ) {
        float value = 0.9f;
     
     
       System.out.println( "0.9f rounded to int  : " +  Math.round( value ));
     
       value = 1.49f;
     
       System.out.println( "1.49f rounded to int : " +  Math.round( value ));
     
       value = 1.5f;
       System.out.println( "1.5f rounded to int  : " +  Math.round( value ));
    }
 
}


Output :
0.9f   rounded to int   : 1
1.49f rounded to int   : 1
1.5f   rounded to int   : 2

Math.round rounds the float to the closest int value. It simply looks for the middle half value i.e. 0.5,

  •   < 0.5 discards the fraction part like 1.49f is rounded to 1
  •  >= 0.5  moves the value to the next int value like1.5f is rounded to 2


Note that java Math class has two overloaded method

  1. Math.round(float) returns int
  2.  Math.round(double) returns long






Comments