当前位置:   article > 正文

精度丢失-解决方法(BigDecimal-加减乘除)_ts 数字加减精度失真

ts 数字加减精度失真
  1. /**
  2. * 精度丢失问题解决方法
  3. */
  4. public static void main(String[] args) {
  5. double a = 1.0;
  6. double b = 0.9;
  7. System.out.println(a - b);
  8. // 解决精度丢失问题方法如下
  9. BigDecimal big = new BigDecimal(a + "");
  10. BigDecimal big2 = new BigDecimal(b + "");
  11. // 两个值相加-返回一个BigDecimal对象
  12. BigDecimal subtract = big.subtract(big2);
  13. // 将类型转换为Double类型
  14. System.out.println(subtract.doubleValue());
  15. System.out.println("==========================");
  16. getValue();
  17. }
  18. public static void getValue() {
  19. BigDecimal one = new BigDecimal("5");
  20. BigDecimal two = new BigDecimal("10");
  21. // 加法:
  22. BigDecimal add = one.add(two);
  23. System.out.println("(加法)10+5=" + add);
  24. // 减法:
  25. BigDecimal subtract = two.subtract(one);
  26. System.out.println("(减法)10-5=" + subtract);
  27. // 乘法:
  28. BigDecimal result = one.multiply(two);
  29. System.out.println("(乘法)10*5=" + result);
  30. // 除法:
  31. BigDecimal divide = two.divide(one);
  32. System.out.println("(除法)10/5=" + divide);
  33. // 取余:
  34. BigDecimal result2 = two.remainder(one);
  35. System.out.println("(取余)10%5=" + result2);
  36. }
  37. 输出结果:
  38. 0.09999999999999998
  39. 0.1
  40. ==========================
  41. (加法)10+5=15
  42. (减法)10-5=5
  43. (乘法)10*5=50
  44. (除法)10/5=2
  45. (取余)10%5=0

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/617223
推荐阅读
相关标签
  

闽ICP备14008679号