loading

Java Type Casting

Java Type Casting

Assigning a value from one primitive data type to another is known as type casting.

There are two kinds of casting in Java:

  • Widening Casting (automatically) – converting a smaller type to a larger type size

byte -> short -> char -> int -> long -> float -> double

  • Narrowing Casting (manually) – converting a larger type to a smaller size type

double -> float -> long -> int -> char -> short -> byte

Widening Casting

When moving from a smaller size type to a larger size type, widening casting is automatically performed:

Example

				
					public class Main {
  public static void main(String[] args) {
    int myInt = 9;
    double myDouble = myInt; // Automatic casting: int to double

    System.out.println(myInt);      // Outputs 9
    System.out.println(myDouble);   // Outputs 9.0
  }
}
				
			

Narrowing Casting

The type must be manually narrowed down by preceding the value with parentheses ():

Example

				
					public class Main {
  public static void main(String[] args) {
    double myDouble = 9.78d;
    int myInt = (int) myDouble; // Manual casting: double to int

    System.out.println(myDouble);   // Outputs 9.78
    System.out.println(myInt);      // Outputs 9
  }
}
				
			

Real-Life Example

Here’s a practical example of type casting: we write a software that determines how much a user’s score is relative to the game’s maximum score.

To ensure that the outcome is a floating-point value rather than an integer, we employ type casting:

Example

				
					// Set the maximum possible score in the game to 500
int maxScore = 500;

// The actual score of the user
int userScore = 423;

/* Calculate the percantage of the user's score in relation to the maximum available score.
Convert userScore to float to make sure that the division is accurate */
float percentage = (float) userScore / maxScore * 100.0f;

System.out.println("User's percentage is " + percentage);
				
			
Share this Doc

Java Type Casting

Or copy link

Explore Topic