首页 > 其他分享 >数据类型之间的强制性转换

数据类型之间的强制性转换

时间:2024-08-02 11:21:09浏览次数:13  
标签:类型转换 转换 int 数据类型 强制性 char 强制

数据类型之间的强制性转换

在 Java 中,数据类型之间的转换主要分为两种:自动类型转换(也称为隐式类型转换)和强制类型转换(也称为显式类型转换)。自动类型转换通常发生在更宽泛的数据类型向更狭窄的数据类型转换时,而强制类型转换则需要程序员显式地进行。

自动类型转换(隐式类型转换)

自动类型转换发生在基本数据类型之间,从较小范围的类型自动转换为较大范围的类型。例如:

  • byteshort 转换为 intlong
  • int 转换为 longfloatdouble
  • float 转换为 double

这些转换不需要程序员显式地进行,Java 编译器会自动处理。

强制类型转换(显式类型转换)

当需要将一个数据类型转换为一个更狭窄的数据类型时,需要使用强制类型转换。这种转换可能会丢失精度或引发异常,因此需要程序员显式地进行。常见的强制类型转换包括:

  1. long 转换为 int

    long a = 12345678901234L;
    int b = (int) a; // 强制类型转换
    
  2. double 转换为 int

    double a = 123.456;
    int b = (int) a; // 强制类型转换,只取整数部分
    
  3. float 转换为 byte

    float a = 123.456f;
    byte b = (byte) a; // 强制类型转换,只取整数部分
    
  4. char 转换为 int

    char a = 'A';
    int b = (int) a; // 强制类型转换,将字符转换为其 ASCII 码值
    
  5. int 转换为 char

    int a = 65;
    char b = (char) a; // 强制类型转换,将 ASCII 码值转换为字符
    

注意事项

  • 精度丢失:在从浮点数转换为整数时,小数部分会被截断。
  • 溢出:在将较大的数值转换为较小的数据类型时,可能会发生溢出。例如,将 long 转换为 int 时,如果数值超出 int 的范围,结果将是不确定的。
  • 异常:在某些转换中,如将 double 转换为 int,如果数值太大或太小,可能会抛出 java.lang.NumberFormatException

示例代码

public class TypeCasting {
    public static void main(String[] args) {
        long a = 12345678901234L;
        int b = (int) a; // 强制类型转换,可能会丢失精度

        double c = 123.456;
        int d = (int) c; // 强制类型转换,只取整数部分

        float e = 123.456f;
        byte f = (byte) e; // 强制类型转换,只取整数部分

        char g = 'A';
        int h = (int) g; // 强制类型转换,将字符转换为其 ASCII 码值

        int i = 65;
        char j = (char) i; // 强制类型转换,将 ASCII 码值转换为字符

        System.out.println("b = " + b);
        System.out.println("d = " + d);
        System.out.println("f = " + f);
        System.out.println("h = " + h);
        System.out.println("j = " + j);
    }
}

在实际编程中,合理地使用数据类型转换可以提高代码的灵活性和效率,但也要注意避免潜在的问题。

标签:类型转换,转换,int,数据类型,强制性,char,强制
From: https://www.cnblogs.com/wjw2003512/p/18338348

相关文章

  • 数据类型
    数据类型Java是一种静态类型语言,这意味着每个变量在使用前必须声明其数据类型。Java的数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型基本数据类型是Java语言预定义的,用于存储原始数据的类型。Java有8种基本数据类型:整型:byte:8位有符号整数,取值范围......
  • 数据类型的转换
    数据类型的转换1.隐式类型转换(自动类型转换)隐式类型转换发生在两种情况下:赋值时的转换:当将一个值赋给另一个变量时,如果两个变量的数据类型不兼容,但目标类型的范围能够包含源类型的所有值,则编译器会自动将源类型的值转换为目标类型。例如,在Java中,将int类型的值赋给long类型的变......
  • js日期时间前端转换
    //转换列值//数据库表字段是datetime(2,7)transformColumnValue(scope,column){consttype=column.type;letvalue=scope.row[column.property.dataField.value];console.log('value',value,Date.parse(value),newDate(Date.parse(va......
  • 类型转换运算符
    1.作用类通过自定义的类型转换运算符,可以将一个类型转换成另一个类型。例如将自定义的Student类转换成std::string类。虽然在格式上和运算符重载类似,但运算符重载是一个成员函数,而类型转换运算符不是,因为没有返回值。2.格式operatortype()[const];type:表示转化后的数据......
  • Jmeter(五十二)PostMan的json格式文件转换为jmx文件
    他年我若为青帝,报与桃花一处开               ---黄巢一、环境准备1.maven2.postman3.jmeter 二、将PostMan的接口请求导出来  export即可三、拉取项目并构建gitclonehttps://github.com/Loadium/postman2jmx.git拉取完成进行......
  • 5分钟掌握软件测试必会mysql数据库知识(数据类型和数据约束
    mysql常用数据类型mysql的常用数据类型,主要有四种,需要我们重点掌握。1整型int整型分成两类,一类是有符号的,就是负数,一类是无符号的,就是正整数。很多时候我们需要的就是无符号的。比如年龄。2小数decimal小数的设置需要我们特别去了解一下。例如:decimal(4,2)这是表示......
  • C#时间戳的获取与转换
    前言时间戳是指时间从1970年01月01日00时00分00秒至现在的总秒数(北京时间是08时00分00秒),时间戳是使用数字签名技术产生的数据。在软件开发中处理时间戳是一种常见的操作。在C#中如何获取系统时间的时间戳、时间戳与日期的转换等。本文将介绍C#时间戳的一些基本使用。时间戳 ......
  • YOLOv8n部署到RK3588开发板全流程(pt→onnx→rknn模型转换、板端后处理检测)
    YOLOv8n部署到RK3588开发板全流程文章目录前言一、模型训练二、配置用于pt模型转onnx模型的环境三、pt→onnx模型转换四、配置onnx转rknn模型的虚拟环境五、onnx转rknn模型六、RK3588板端部署前言小白博主,第一次写博客记录自己YOLOv8n部署RK3588开发板的全流程,记......
  • 网络层IP协议,网段划分,NAT转换
    网络层IP协议1.IP协议的基本认识2.IP协议如何进主机定位和报文转发3.IP分片和组装4.IP协议报头格式5.网段划分如何进行网段划分(子网,公网)分类划分法子网掩码特殊的IP地址6.私有IP地址和公网IP地址7.IP地址数量限制问题8.NAT网络地址转换机制NAT简介工作原理......
  • Newtonsoft.Json 全局设置 json null转换为空(包含int)
    publicclassCustomDateConverter:IsoDateTimeConverter{publicCustomDateConverter(){DateTimeFormat="yyyy-MM-ddHH:mm:ss";//设定你想要的日期时间格式}}publicclassNullToEmptyStringConverter:JsonCo......