zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    多线程的互斥(下)——信号量
    多线程间的互斥-锁(下)
    多线程间的互斥(上)
    多线程间的同步
    Qt中的多线程编程
    进程和线程的概念
    【linux Vim】8-Vim高级应用
    【linux Vim】7-Vim基本操作
    【linux Vim】6-Vim介绍
    【linux 正则表达式】5-扩展正则表达式
  • 原文地址:https://www.cnblogs.com/zxy6/p/14180497.html
Copyright © 2011-2022 走看看