Java中的数据类型转换

Java中的数据类型转换

1、隐式类型转换

从低级类型向高级类型转换,系统将会自动执行。这种类型的转换被称为隐式转换。

下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。

这些类型按精度从低到高排列的顺序为byte<short<int<long<float<double

例如:使用int型变量为float型变量赋值,此时int型变量将隐式转换成float型变量。

int x = 50;				//声明int型变量x
float y = x;			//将x赋值给y

此时执行输出语句,y的结果将是50.0。

例如:在项目中创建类Conver,在主方法中创建不同数值型的变量,实现将各变量隐式转换。

public class Conver {                               //创建类
    public static void main(String[]args) {         //主方法
        byte mybyte = 127;                          //定义byte型变量mybyte,并把byte型变量允许的最大值赋给mybyte
        int myint = 150;                            //定义int型变量myint,并赋值150
        float myfloat = 452.12f;                    //定义float型变量myfloat,并赋值
        char mychar = 10;                           //定义char型变量mychar,并赋值
        double mydouble = 45.46546;                 //定义double型变量mydouble,并赋值
        /*将运算结果输出*/
        System.out.println("byte型与float型数据进行运算的结果为:" + (mybyte + myfloat));
        System.out.println("byte型与int型数据进行运算的结果为:" + (mybyte + myint));
        System.out.println("byte型与char型数据进行运算的结果为:" + (mybyte + mychar));
        System.out.println("double型与char型数据进行运算的结果为:" + (mydouble + mychar));
    }
}

在这里插入图片描述

2、显式类型转换

当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。语法如下:

(类型名)要转换的值

例如:将不同的数据类型进行显式类型转换。

int a = (int)45.23;			//此时输出a的值为45
long y = (long)456.6f		//此时输出y的值为456
int b = (int)'d';			//此时输出b的值为100

执行显式类型转换时,可能会导致精度损失。除boolean类型以外其他基本类型,都能以显式类型的方法实现转换。

当把整数赋值给一个byte,short,int,long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。例如:

byte b = (byte)129;

变量的取值范围,否则必须进行强制类型转换。例如:

byte b = (byte)129;
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的型到存储范围大的型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte型的变量可以自动转换为short型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数型别是比较大的整数类型转换成小数型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该型的转换。 转换规则 从存储范围大的型到存储范围小的型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double型的变量d强制转换成int型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int型的变量转换为byte型时,则只去int型的低8位(也就是最后一个字节)的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值