常见对象BigDecimal的概述

BigDecimal的概述

由于在运算的时候,float类型和double很容易丢失精度,所以为了能精确表示,计算浮点数,Java提供了BigDecimal

2.0-1.1 = 0.899999
在计算机中使用二进制方式存储 , 二进制表示小数的时候不能直接表示出来 , 只能是无限接近于这个小数
同理 用十进制也有不能精确表示的 如 1/3 只能写成0.3333循环 无限接近于这个数 就会出现精度损失
用BigDecimal 就可以很精确的计算

构造方法

  • public BigDecimal (String val) //
  • public BigDecimal (double val)// 不推荐 用这种构造 因为还是不够精确

成员方法

  • public BigDecimal add(BigDecimal val)
  • public BigDecimal subtract (BigDecimal val)
  • public BigDecimal multiply (BigDecimal val)
  • public BigDecimal divide (BigDecimal val)
BigDecimal bd1 = new Bigdecimal("2.0");
BigDecimal bd2 = new Bigdecimal("1.1");
System.out.println(bd1.subtract(bd2));

通过构造中传入字符串的方式生成的BigDecimal 对象 再算2.0 - 1.1 结果就对了 开发时推荐

小技能

Bigdecimal bd1 = Bigdecimal.valueOf(2.0);
Bigdecimal bd1 = Bigdecimal.valueOf(1.1);
System.out.println(bd1.subtract(bd2));
// 结果也是0.9 所以这种方式也可以 不推荐使用构造直接传入double数
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容