Java 类型转换(类型转换)

类型转换是一种由编译器或程序员使用的技术将一种数据类型转换为另一种数据类型。例如,将 int 转换为 double、double 转换为 int、short 转换为 int 等。

Java 编程中允许的强制类型转换有两种类型:

  • 加宽型转换
  • 缩小型转换

加宽型转换

加宽型转换也称为隐式类型转换,其中较小的类型转换为较大的类型,由编译器自动完成。

这里是Java扩展类型转换的层次结构:

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

编译器在类型转换中发挥作用,而不是程序员。它在编译时更改变量的类型。此外,类型转换仅发生从小数据类型到大数据类型。

示例 1:加宽类型转换

在下面的示例中,我们演示了在以下情况下可能会出现错误:编译器尝试将大数据类型转换为小数据类型。在这里,我们创建了 num1 整数和 num2 双精度变量。 num1 和 num2 的和将是 double,当我们尝试将其存储到 int 类型的 sum 时,编译器会给出错误。

package com.yxjc123;

public class Tester {
   //主方法
   public static void main(String[] args) {
      //定义int变量
      int num1 = 5004;
      double num2 = 2.5;
      int sum = num1 + num2;
      //显示输出
      System.out.println("The sum of " + num1 + " and " + num2 + " is " + sum);
   }
} 

编译并运行 Tester。这将产生以下结果 

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Type mismatch: cannot convert from double to int

	at com.yxjc123.Tester.main(Tester.java:9) 

示例 2:加宽类型转换

在下面的示例中,我们创建了相同的 num1 和 num2 变量在第一个例子中。我们将两个数字的总和存储在 double 类型的 sum 变量中。在输出中,我们可以观察到double类型的和。

package com.yxjc123;

public class Tester {
   //主方法
   public static void main(String[] args) {
      //定义int变量
      int num1 = 5004;
      double num2 = 2.5;
      double sum = num1 + num2;
      //显示输出
      System.out.println("The sum of " + num1 + " and " + num2 + " is " + sum);
   }
} 

编译并运行Tester。这将产生以下结果 

The sum of 5004 and 2.5 is 5006.5 

缩小类型转换

缩小类型转换也称为显式类型转换显式类型转换由程序员手动完成。在缩小类型转换中,较大的类型可以转换为较小的类型。

当程序员在编写代码时更改变量类型时。我们可以使用强制转换运算符来更改变量的类型。例如,double 到 int 或 int 到 double。

语法

下面是缩小类型转换的语法,即手动类型转换:

double doubleNum = (double) num; 

上面的代码语句会将变量转换为 double 类型。

示例:缩小类型转换

在下面的示例中,我们定义了整数类型的 num 变量,并使用该值对其进行初始化。此外,我们定义了 double 类型的 doubleNum 变量,并将其转换为 double 后存储 num 变量的值。

接下来,我们创建了"convertedInt"整数类型变量,并将类型转换后的 double 值存储为国际。在输出中,我们可以观察 double 和 int 变量的值。

package com.yxjc123;

public class Tester {
   //主方法
   public static void main(String[] args) {
      //定义int变量
      int num = 5004;
      // 将 int 类型转换为 double
      double doubleNum = (double) num;
      //显示输出
      System.out.println("The value of " + num + " after converting to the double is " + doubleNum);
      // 将 double 类型转换为 int
      int convertedInt = (int) doubleNum;
      //显示输出
      System.out.println("The value of " + doubleNum + " after converting to the int again is " + convertedInt);
   }
} 

编译并运行测试器。这将产生以下结果 

The value of 5004 after converting to the double is 5004.0
The value of 5004.0 after converting to the int again is 5004 
更多Java类型转换方法