Java-类型转换

本文介绍了Java中的类型转换,包括自动类型转换和强制类型转换。自动转换在数值运算中不会导致精度损失,而强制转换可能导致精度损失。在进行二元操作时,Java会根据操作数类型将它们提升到同一类型,通常是double、float或long中的一种。尽管强制类型转换有时不可避免,但应谨慎使用,因为它可能导致数据丢失。推荐在需要精确整数结果时使用Math.round方法。
摘要由CSDN通过智能技术生成

1.自动类型转换

把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。自动类型转换不会发生精度的损失。

例如:
 int i = 10;
 double d = i;
 System.out.println(d);//结果为10.0

当使用两个不同类型数值进行二元操作时,先要将两个操作数转换为同一种类型,然后再进行计算。

  • 如果两个操作数中有一个是double类型,另一个操作数就会转换为double类型。
  • 否则,如果其中一个操作数是float类型,另一个操作数将会转换成float类型。
  • 否则,如果其中一个操作数是long类型,另一个操作数将会转换成long类型。
  • 否则,两个操作数都将被转换为int类型。
    数值类型之间的合法转换
    注:图中实心箭头表示无信息丢失的转换,虚箭头表示可能有精度损失的转换。

2.强制类型转换

把一个数据范围大的数值或变量赋值给另一个表示数据范围小的变量。会有精度的损失。其语法格式是在圆括号中给出想要转换的目标类型,后面紧跟带转换的变量名。例如:

double d = 9.997;
int i = (int) d; //此时变量i的值为9

从例子中可以看出转换后的数据丢失了一部分信息,所以一般情况下不建议使用强制类型转换。
如果想要对付点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值