数据类型转换

** 数据类型转换**

在这里插入图片描述
自动类型转换(隐式)

概念:不同数据类型运算时,数据范围小的数据类型会自动转换成范围大的数据类型。
在这里插入图片描述
其中6根实线代表无信息丢失的转换。有3个虚头,表示可能有精度损失的转换。

例如,123456789 是一个大整数,所包含的位数比 float 类型所能够表达的位数多。 当将这个整型数值转换为 float 类型时,将会得到同样大小的结果,但却失去了一定 的精度。例如:

int n = 123456789;
float f = n; // f is 1.23456792E8

当使用上面两个数值进行二元操作时(例如 n + f,n 是整数, f 是浮点数,) 先要将两个操作数转换为同一种类型,然后再进行计算。

•如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。
•否则,如果其中一个操作数是 float 类型,另一个操作数将会转换为 float 类型。
•否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。
•否则, 两个操作数都将被转换为 int 类型。

强制类型转换

在必要的时候,int 类型的值将会自动地转换为 double 类型。但另 一方面,有时也需要将 double 转换成 int。 在 Java 中,允许进行这种数值之间的类型转换。当然,有可能会丢失一些信息。在这种情况下,需要通过强制类型转换( cast) 实现这个操作。强制类型转换的语法格式是在圆括号中想要转换的目标类型,后面紧跟待转换的变量名。
例如:

   double x = 9.997; 
     int nx = (int) x;

这样,变量nx的值为9。强制类型转换通过截断小数部分将浮点值转换为整型。

如果运算符得到一个值,其类型与左侧操作数的类型不同,就会发生强制类型转换。例如,如果 X 是一个 int, 则以下语句

 x += 3.5; 

是合法的,自动将把 x 设置为(int)(x + 3.5)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值