Java 实现数据类型转换
在本教程中,我们将学习Java中的类型转换。在许多情况下,我们需要改变变量的类型。我们可以显式或隐式地改变变量的类型。
强制类型转换
当程序员在编写代码时改变变量类型时,称为强制类型转换。我们可以使用强制类型转换运算符来改变变量的类型。例如,将double转换为int或将int转换为double。
在类型转换中,我们可以将大的数据类型转换为小的数据类型,或将小的数据类型转换为大的数据类型。
语法
用户可以按照以下语法进行类型转换。
double doubleNum = (double) num;
在上面的语法中,我们将变量转换为double类型。
示例
在下面的示例中,我们定义了整数类型的num变量,并将其初始化为给定的值。此外,我们还定义了双精度类型的doubleNum变量,并将num变量转换为double后将其存储在其中。
接下来,我们创建了一个名为’convertedInt’的整数类型的变量,并将双精度值进行类型转换后存储为整数。在输出结果中,我们可以观察到双精度和整数变量的值。
代码
import java.io.*;
public class main {
// Main driver method
public static void main(String[] args) {
// Define int variable
int num = 5004;
// Type casting int to double
double doubleNum = (double) num;
// show output
System.out.println("The value of " + num + " after converting to the double is " + doubleNum);
// Type casting double to int
int convertedInt = (int) doubleNum;
// show output
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
类型转换
编译器在类型转换中起着作用,而程序员并不直接参与其中。它在编译时改变变量的类型。此外,类型转换只能从小的数据类型转换为大的数据类型。程序员可以查看以下类型转换的顺序。
double > float > long > int >short > byte
显示类型转换中的错误的示例
在下面的示例中,我们展示了当编译器尝试将一个大的数据类型转换为一个小的数据类型时出现错误的情况。在这里,我们创建了num1整型变量和num2双精度变量。num1和num2的和将是双精度数,在我们尝试将其存储到int类型的总和时,编译器会报错。
代码
import java.io.*;
public class main {
// Main driver method
public static void main(String[] args) {
// Define int variables
int num1 = 5004;
double num2 = 2.5;
int sum = num1 + num2;
// show output
System.out.println("The sum of " + num1 + " and " + num2 + " is " + sum);
}
}
输出
main.java:8: error: incompatible types: possible lossy conversion from double to int
int sum = num1 + num2;
^
1 error
演示类型转换的示例
在下面的示例中,我们创建了与第一个示例中相同的num1和num2变量。我们将这两个数字的和存储在double类型的sum变量中。在输出中,我们可以观察到双精度类型的和。
import java.io.*;
public class main {
// Main driver method
public static void main(String[] args) {
// Define int variables
int num1 = 5004;
double num2 = 2.5;
double sum = num1 + num2;
// show output
System.out.println("The sum of " + num1 + " and " + num2 + " is " + sum);
}
}
输出
The sum of 5004 and 2.5 is 5006.5
我们在本教程中学习了类型转换和类型强制转换。用户执行类型强制转换,编译器执行类型转换。在类型强制转换中,我们可以缩小结果值的范围,但在类型转换中,如果我们试图缩小值的范围,编译器会报错。