🎓 A1Learner
🔍
0 of 48 lessons completed

Java Type Casting

Type casting is the conversion of a value from one type to another type. Widening conversions happen automatically, and narrowing conversions need a cast written in the code.

Widening happens automatically

An int value moves into a double variable with no cast. The printed value gains a decimal point.

public class Main {
  public static void main(String[] args) {
    int count = 5;
    double wide = count;
    System.out.println(wide);
  }
}

Narrowing needs a cast

The cast in front of the value turns it into an int. The decimal part drops away.

public class Main {
  public static void main(String[] args) {
    System.out.println((int) 5.9);
  }
}

The division pair

The first line divides two whole numbers. The second line casts 5 to double before the division.

public class Main {
  public static void main(String[] args) {
    System.out.println(5 / 2);
    System.out.println((double) 5 / 2);
  }
}

Example

public class Main {
  public static void main(String[] args) {
    int score = 7;
    double wideScore = score;
    double exact = 7.9;
    int whole = (int) exact;
    System.out.println(wideScore);
    System.out.println(whole);
  }
}

Key points

  • Widening moves a value into a larger type.
  • Widening happens automatically.
  • Narrowing moves a value into a smaller type.
  • Narrowing needs a cast written before the value.
  • A cast to int drops the decimal part of a value.
  • Division of two whole numbers gives a whole number.

In this example, score holds 7 as an int. The value widens into a double and prints as 7.0. A cast turns 7.9 into an int, and that value prints as 7.

Note

A cast changes a value for that one use, and the original variable keeps its value.

Try it Yourself

Edit the code, then press Run.

Running is simulated

Exercise

What does (int) 5.9 print?