BigDecimalUtils.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.uas.service.donate.util;
  2. import java.math.BigDecimal;
  3. /**
  4. * BigDecimal 基本运算
  5. * Created by dongbw
  6. * 17/12/28 11:39.
  7. */
  8. public class BigDecimalUtils {
  9. /**
  10. * 加法
  11. * @param v1 double数字
  12. * @param v2 double数字
  13. * @return
  14. */
  15. public static Double add(Double v1, Double v2) {
  16. BigDecimal b1 = new BigDecimal(v1.toString());
  17. BigDecimal b2 = new BigDecimal(v2.toString());
  18. return b1.add(b2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  19. }
  20. /**
  21. * 减法
  22. * @param v1 double数字
  23. * @param v2 double数字
  24. * @return
  25. */
  26. public static Double substract(Double v1, Double v2) {
  27. BigDecimal b1 = new BigDecimal(v1.toString());
  28. BigDecimal b2 = new BigDecimal(v2.toString());
  29. return b1.subtract(b2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  30. }
  31. /**
  32. * 乘法
  33. * @param v1 double数字
  34. * @param v2 double数字
  35. * @return
  36. */
  37. public static Double multiply(Double v1, Double v2) {
  38. BigDecimal b1 = new BigDecimal(v1.toString());
  39. BigDecimal b2 = new BigDecimal(v2.toString());
  40. return b1.multiply(b2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  41. }
  42. /**
  43. * 除法
  44. * @param v1 double数字
  45. * @param v2 double数字
  46. * @return
  47. */
  48. public static Double divide(Double v1, Double v2) {
  49. if (v2 == 0) {
  50. //如果除数为0,抛出异常信息。
  51. throw new IllegalArgumentException("除数不能为0");
  52. }
  53. BigDecimal b1 = new BigDecimal(v1.toString());
  54. BigDecimal b2 = new BigDecimal(v2.toString());
  55. return b1.divide(b2, 2).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  56. }
  57. }