java怎样强制转换数据类型,Java数据类型转换(自动转换和强制转换)

数据类型的转换,分为自动转换和强制转换。

自动转换: 程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换(低精度->高精度 转换)。

强制类型转换: 则必须在代码中声明,转换顺序不受限制(高精度 -> 低精度转换)。 PS:此种转换存在精度损失。

自动数据类型转换:

自动转换按从低精度到高精度的顺序转换。不同类型数据间的优先关系如下:

低--------------------------------------------->高

byte,short,char-> int -> long -> float -> double

强转: 需要在代码中声明

高--------------------------------------------->低

double->float -> long -> int -> byte,short,char

实例1:

public class Demo {

public static void main(String[] args){

int x; double y;

x = (int)34.56 + (int)11.2; // 丢失精度(强转)

y = (double)x + (double)10 + 1; // 提高精度(自动转换)

System.out.println("x=" + x);

System.out.println("y=" + y);

}

}

运行结果:

x=45

y=56.0

程序分析:

1、由于在 34.56 前有一个 int 的强制类型转化,所以 34.56 就变成了 34。同样 11.2 就变成了 11 了,所以 x 的结果就是 45。

2、在 x 前有一个 double 类型的强制转换,所以 x 的值变为 45.0,而 10 的前面也被强制成 double 类型,所以也变成 10.0,所以最后 y 的值变为 56。

备注:其中 (double)可声明也可不声明,因为是提高精度。

转载:https://blog.csdn.net/farsight1/article/details/80447658

https://blog.csdn.net/u011240877/article/details/47721135

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值