Java 类型转换
Java 类型转换
类型转换是指将一个基本数据类型的值赋给另一个类型。
在 Java 中,有两种类型的转换
- **扩展转换**(自动) - 将较小的类型转换为较大的类型大小
byte
->short
->char
->int
->long
->float
->double
- **缩小转换**(手动) - 将较大的类型转换为较小的类型大小
double
->float
->long
->int
->char
->short
->byte
扩展转换
当将较小的类型传递给较大的类型时,扩展转换会自动完成
示例
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
}
}
缩小转换
缩小转换必须手动完成,方法是在值前面加上类型括号 ()
示例
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
}
}
现实生活中的例子
以下是一个类型转换的现实生活例子,我们创建一个程序来计算用户得分在游戏中的最高分中的百分比。
我们使用类型转换来确保结果是一个**浮点数**值,而不是整数
示例
// 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);