实现类型转换和类型转换的Java程序
当我们必须根据需求更改输出的功能以及输出的类型时,会出现很多情况。例如,以十进制格式输入的 PI 值应转换为十进制格式,以便可以有效地使用该值,而不会出现任何类型的错误和错误输出。
有两种方法可以将类型从一种更改为另一种。
- 类型铸造
- 类型转换
类型转换意味着将一种状态更改为另一种状态,由程序员使用转换运算符。类型转换由程序员在程序设计期间完成。类型转换也指窄转换。因为在很多情况下,我们必须根据操作的要求将大数据类型值转换为更小的数据类型值。我们还可以将较大的数据类型值转换为较小的数据类型值,这就是 Type Casting 称为 Narrow Casting 的原因。
语法: ()是 Cast 运算符
RequiredDatatype=(TargetType)Variable
示例 1:
Java
// Java Program to Implement Type Casting of the Datatype
// Importing input output classes
import java.io.*;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring an Integer dataype
int a = 3;
// Casting to Large datatype
double db = (double)a;
// Print and display the casted value
System.out.println(db);
// Narrow Casting conversion
int db1 = (int)db;
// Print an display narrow casted value
System.out.println(db1);
}
}
Java
// Java Program to illustrate Type Conversion
// Importing input output classes
import java.io.*;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variables to values
// with different return type
long a = 3;
byte b = 2;
double c = 2.0;
// Type Conversion
int final_datatype = (a + b + c);
// Print statement
System.out.print(final_datatype);
}
}
Java
// Java Program to illustrate Type Conversion
// Importing input output classes
import java.io.*;
// Main Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializaing variables to values
// but to different data types
long a = 3;
byte b = 2;
double c = 2.0;
// Type Conversion
// As long and byte data types are converted to
// double return type
double final_datatype = (a + b + c);
// Printing the sum of all three initialized values
System.out.print(final_datatype);
}
}
输出
3.0
3
类型转换是由编译器完成的类型转换 在编译期间由编译器在程序员无意中完成。如果正确的结果数据类型没有在数据类型的多个表达式的末尾提及,则此转换有时会产生错误或不正确的答案,这就是为什么类型转换比类型转换效率低的原因。
类型转换的工作机制如下:
double > float > long > int > short > byte
示例 1:类型转换时出错
Java
// Java Program to illustrate Type Conversion
// Importing input output classes
import java.io.*;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing variables to values
// with different return type
long a = 3;
byte b = 2;
double c = 2.0;
// Type Conversion
int final_datatype = (a + b + c);
// Print statement
System.out.print(final_datatype);
}
}
输出:
prog.java:9: error: incompatible types: possible lossy conversion from double to int
int final_datatype = (a + b + c);
^
1 error
输出说明:
将一种数据类型的值分配给另一种数据类型时,这两种类型可能不兼容。如果数据类型兼容,则Java将自动执行称为 Automatic Type Conversion 的转换,如果不兼容,则需要显式强制转换或转换。例如,将 int 值分配给 long 变量。
示例 2:
Java
// Java Program to illustrate Type Conversion
// Importing input output classes
import java.io.*;
// Main Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializaing variables to values
// but to different data types
long a = 3;
byte b = 2;
double c = 2.0;
// Type Conversion
// As long and byte data types are converted to
// double return type
double final_datatype = (a + b + c);
// Printing the sum of all three initialized values
System.out.print(final_datatype);
}
}
输出
7.0