• java中的类型转换


    类型转换

      概述:不同类型的数据之间可能会进行运算,而这些数据取值范围不同,存储方式不同,直接进行运算可能会造成数据损失,所以需要将一种类型转成另一种类型再进行运算。

      分类:1.自动(隐式)类型转换       

            小类型转大类型,自动替身为大类型,运算结果是大类型

            数据类型的范围从小到大如下:

              byte,short,char--->int(默认的整型)--->long--->float--->double(默认的浮点型)

              boolean类型不参与比较,它的值只有true和false两个

         2.强制(显示)类型转换

            手动将大类型转换成小类型,运算结果是小类型

            格式:目标类型 变量名=(目标类型)要转换的值

            注意:强制类型转换再使用的时候可能会出现精度丢失的问题

      类型关系图:

     注意事项:当且仅当大类型数据可以转换为小类型数据时,才进行转换,否则会造成精度损失(例:当浮点数(小数)转换为整数,

    浮点数小数点后面的值会丢失)

    例:

      如果定义两个变量,一个为int型,一个为byte型,他们运算的结果是一个int型,所以可以定义一个int变量来进行接收他们的计算的结果

    public class d {
        public static void main(String[] args) {
            //定义的格式:数据类型 变量名=初始值
            //定义一个int类型的数据和一个byte类型的数据
            int bb=4;
            byte aa=5;
            int cc=aa+bb;
            System.out.println(cc);
        }
    }

    运算结果为:

    9
    

      但是如果使用byte来接收呢,程序就会报错,这个错误主要是因为当不管是什么short,byte,还是char类型计算的时候都会转换成int类型来进行计算,所以在int类型和byte类型计算的时候,会先将byte类型转换为int类型,结果也是int类型。这个时候如果还是要求数据类型

    为byte类型呢?这个时候就需要用到强制类型转换了,将aa和bb运行的结果强制转换为byte就可以了。

    public class d {
        public static void main(String[] args) {
            //定义的格式:数据类型 变量名=初始值
            //定义一个int类型的数据和一个byte类型的数据
            int bb=4;
            byte aa=5;
            byte cc=(byte)(aa+bb);   //aa和bb的结果为int类型,强制转换为byte类型
            System.out.println(cc);
        }
    }

    运行结果为:

    9
    

    但是强制类型转换是不能随随便便就运行的,有时候会造成精度丢失的情况,比如将一个浮点数类型的数据强制转换为一个int类型的数据:

    public class d {
        public static void main(String[] args) {
            //定义的格式:数据类型 变量名=初始值
            double dd=5.4;
            int qq=(int)dd;   //强制转换为整型
            System.out.println(qq);
        }
    }

    运行结果为:

    5
    

      

  • 相关阅读:
    sgu209:Areas(计算几何)
    altium designer电气符号和包的常用元素
    wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计
    zoj 3820 Building Fire Stations(二分法+bfs)
    iOS 注册或登录页面(UILable,UITextField,UIButton)
    [ACM] POJ 2689 Prime Distance (筛选范围大素数)
    数字签名和数字证书技术简介(两)
    [Node] Using dotenv to config env variables
    [TypeStyle] Compose CSS classes using TypeStyle
    [Node] Use babel-preset-env with Native Node Features and Also Use Babel Plugins
  • 原文地址:https://www.cnblogs.com/zxy6/p/14180497.html
Copyright © 2020-2023  润新知