首页 > 其他 > 详细

强制转换与自动转换

时间:2021-06-23 00:43:06      阅读:28      评论:0      收藏:0      [点我收藏+]

强制转换与自动转换

在进行类型转换之前,先了解下 Java 中的 几 种基本数据类型数字表示范围。

技术分享图片

强制转换是由高向低转换,自动转换是又低到高转换。

自动转换如:

public class Demo01 {
  public static void main(String[] args) {
?
      long a=128l;
      float f=a;
      System.out.println(a);
      System.out.println(f);
  }
}

技术分享图片

自动转换时注意溢出问题:

int a=100_0000;
      int b=3000;
      long c=a*b;
      System.out.println(c);

技术分享图片

两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的表示范围,出现溢出。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。

强制转换如:

public class Demo01 {
  public static void main(String[] args) {
?
?
      float f=128.3f;
      long a=(long)f;
      int i=128;
      byte b=(byte)i;
      System.out.println(f);
      System.out.println(a);
      System.out.println(i);
      System.out.println(b);
  }
}

技术分享图片

强制转换时遇到的问题:精度问题与溢出问题。

上图强制转换就出现了丢失精度,数据溢出(128超出了byte 类型表示的范围)。

强制转换与自动转换

原文:https://www.cnblogs.com/zx666666/p/14920610.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!