1. import java.math.BigDecimal;
    2. public class BigDecimalUtils {
    3. public static BigDecimal doubleAdd(double v1, double v2) {
    4. BigDecimal b1 = new BigDecimal(Double.toString(v1));
    5. BigDecimal b2 = new BigDecimal(Double.toString(v2));
    6. return b1.add(b2);
    7. }
    8. public static BigDecimal floatAdd(float v1, float v2) {
    9. BigDecimal b1 = new BigDecimal(Float.toString(v1));
    10. BigDecimal b2 = new BigDecimal(Float.toString(v2));
    11. return b1.add(b2);
    12. }
    13. public static BigDecimal doubleSub(double v1, double v2) {
    14. BigDecimal b1 = new BigDecimal(Double.toString(v1));
    15. BigDecimal b2 = new BigDecimal(Double.toString(v2));
    16. return b1.subtract(b2);
    17. }
    18. public static BigDecimal floatSub(float v1, float v2) {
    19. BigDecimal b1 = new BigDecimal(Float.toString(v1));
    20. BigDecimal b2 = new BigDecimal(Float.toString(v2));
    21. return b1.subtract(b2);
    22. }
    23. public static BigDecimal doubleMul(double v1, double v2) {
    24. BigDecimal b1 = new BigDecimal(Double.toString(v1));
    25. BigDecimal b2 = new BigDecimal(Double.toString(v2));
    26. return b1.multiply(b2);
    27. }
    28. public static BigDecimal floatMul(float v1, float v2) {
    29. BigDecimal b1 = new BigDecimal(Float.toString(v1));
    30. BigDecimal b2 = new BigDecimal(Float.toString(v2));
    31. return b1.multiply(b2);
    32. }
    33. public static BigDecimal doubleDiv(double v1, double v2) {
    34. BigDecimal b1 = new BigDecimal(Double.toString(v1));
    35. BigDecimal b2 = new BigDecimal(Double.toString(v2));
    36. // 保留小数点后两位 ROUND_HALF_UP = 四舍五入
    37. return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
    38. }
    39. public static BigDecimal floatDiv(float v1, float v2) {
    40. BigDecimal b1 = new BigDecimal(Float.toString(v1));
    41. BigDecimal b2 = new BigDecimal(Float.toString(v2));
    42. // 保留小数点后两位 ROUND_HALF_UP = 四舍五入
    43. return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
    44. }
    45. /**
    46. * 比较v1 v2大小
    47. * @param v1
    48. * @param v2
    49. * @return v1>v2 return 1 v1=v2 return 0 v1<v2 return -1
    50. */
    51. public static int doubleCompareTo(double v1, double v2) {
    52. BigDecimal b1 = new BigDecimal(Double.toString(v1));
    53. BigDecimal b2 = new BigDecimal(Double.toString(v2));
    54. return b1.compareTo(b2);
    55. }
    56. public static int floatCompareTo(float v1, float v2) {
    57. BigDecimal b1 = new BigDecimal(Float.toString(v1));
    58. BigDecimal b2 = new BigDecimal(Float.toString(v2));
    59. return b1.compareTo(b2);
    60. }
    61. }