昆明java培训
达内昆明广州春城路

18487146383

热门课程

java中精度损失问题

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

昆明达内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中+=语句强制转换性

达内培训小米MIX 2尊享版工艺精湛

程序猿教你java的创建和销毁对象

昆明java培训-程序猿带你入门到精通

昆明达内-有趣的轻量级图像浏览器

选择城市和中心
贵州省

广西省

海南省