Java中的实型与整型的相互转换

本文详细探讨了在编程中不同类型间进行显式和隐式转换的过程,并解释了这些转换如何影响数据精度,尤其是在整型与实型之间的转换时可能出现的小数部分丢失问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  因为实型比整型要多出小数部分,从整型转为实型时不会有精度丢失,但是由实型转为整型时则会丢失小数部分的数据。

显式转换,也就是强制类型转换,例如下面的代码:

int i=123;

double d=(double)i;

int k=(int)d;

在以上代码中,首先将int型的变量转换为double型,在赋值给变量d,然后又把double型的变量d转换为int型并赋值给int型的变量k。因为最初变量i的值为整数,因此在整个转换过程中不会存在数据的丢失。但是如果变量d带有小数部分,那么变量k则将丢失小数部分的数据,如下面代码:

double d=123.45;

int k=(int)d;

此时,变量k的值就是123了,小数部分的数据在转换过程中就丢失了。另外,有些转换是隐式的,代码中并没有显示的强制类型转换的代码,例如下面的代码:

double d2=12;

System.out.println(d2+123);

以上代码的俩个语句都存在隐式的类型转换。第一句,字面量12的类型为int,但是它却赋值给了double型的d2,其中就存在隐式的intdouble的转换过程;第二句,double型的d2int型的字面量123想家,字面量123在相加之前也有一个隐式的转换成double型的过程。

注意:在算术运算过程中,类型的转换必须遵守一个原则,就是由低位向高位转换,以变量中的类型字节长度最大的为类型目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值