课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java中精度损失问题
  • java中精度损失问题

    发布:昆明Java培训      来源:达内新闻      时间:2016-10-24

  • 昆明达内Java培训的老师这一期给大家讲java中数据类型精度损失问题。

    关于java中数据类型范围值溢出报错:

    1 class Demo2

    2 {

    3    public static void main(String[] args)

    4    {

    5        byte a,b,c;

    6        /*将int型赋值给byte型,byte型长度为一个字节,数值范围-128~127*/

    7        a=5;

    8        b=128;//将超出数据类型数值范围的数赋给该类型会报错

    9        c=a+b;//将未知大小的数值赋给byte型会报错

    10        System.out.println(c);

    11

    12        int x,y,z;

    13        /*int型是java默认的整数类型,其长度为四个字节,数值范围-2147483648~2147483647*/

    14        x=154;

    15        y=Integer.MAX_VALUE+1;//给y赋值int最大值加1超出范围,溢出但是不报错

    16        z=x+y;//将未知大小的数值赋给int型不会报错

    17        System.out.println(z);

    18    }

    19 }

    int型不报错,运行结果为-2147483494(错误结果)

    程序代码分析:

    byte型:1)在给其赋值超出范围的数值会报错精度损失(数据溢出)

    2)用未知大小的数(即变量)给其赋值时会报错精度损失(数据溢出)

    int型:1)在给其赋值超出范围的数值不会报错精度损失(数据溢出)

    2)用未知大小的数(即变量)给其赋值时不会报错精度损失(数据溢出)

    昆明达内Java培训的老师这一期总结:

    在编程中,不同类型的数据在赋值的时候可以使用强制转换来实现赋值,但是其中可能会出现精度损失,此类问题引起的bug不易发现,编程时需注意,尤其是int型数据,作为java默认数据类型,编译器在编译过程中不会对此进行 错,出现的精度损失bug很难发现,尤为要引起注意。

    推荐文章

上一篇:【昆明达内Java培训】java RSA 生成公钥私钥

下一篇:java中+=语句强制转换性

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56