📜  实现类型转换和类型转换的Java程序

📅  最后修改于: 2022-05-13 01:54:43.312000             🧑  作者: Mango

实现类型转换和类型转换的Java程序

当我们必须根据需求更改输出的功能以及输出的类型时,会出现很多情况。例如,以十进制格式输入的 PI 值应转换为十进制格式,以便可以有效地使用该值,而不会出现任何类型的错误和错误输出。

有两种方法可以将类型从一种更改为另一种。

  1. 类型铸造
  2. 类型转换

类型转换意味着将一种状态更改为另一种状态,由程序员使用转换运算符。类型转换由程序员在程序设计期间完成。类型转换也指窄转换。因为在很多情况下,我们必须根据操作的要求将大数据类型值转换为更小的数据类型值。我们还可以将较大的数据类型值转换为较小的数据类型值,这就是 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