Java如何处理浮点数运算的精度问题

 时间:2024-10-14 23:26:42

1、我们先看看Java中直接使用double进行浮点数运算时,出现的精度问题,测试代码如下:private void testAccuracyProblem() { double d1 = 0.01; double d2 = 0.05; double d3 = 0.06; if(Double.compare((d1+d2), d3) == 0) { System.out.println("两个数字相等!"); }else { System.out.println("两个数字不相等!"); } }上述代码运行后,输出了 "两个数字不相等!", 这就是Java中浮点运算的精度问题。

Java如何处理浮点数运算的精度问题

3、为啥使用 BigDecimal 类还出现精度问题呢? 问题出在这个构造函数上,我们使用一个double浮点数作为参数的构造函数来创建 BigDecimal 对象,这个构造函数创建的对象精度本身就有问题,相关API文档对这个问题也有描述(详见图示)。

Java如何处理浮点数运算的精度问题

5、由此,我们通过BigDecimal构建一个摆脱精度困扰的浮点数运算工具类,对应浮点数的四则运算,相关代码请参考图示。

Java如何处理浮点数运算的精度问题Java如何处理浮点数运算的精度问题
  • 厂区运输车该怎么保养?
  • 怎么学电脑打字最快
  • 百变公主酒酿蛋的功效剖析
  • 手指上有白点是怎么回事
  • 2019年王者荣耀世冠赛比赛时间表
  • 热门搜索
    三水南丹山风景区 墙面裂缝怎么处理 宝宝长牙发烧怎么办 螃蟹死了可以吃吗 快递公司怎么开 彭水旅游 奶油奶酪可以做什么 上海商贸旅游学校 来例假可以喝咖啡 怎么可以缓解痛经