DecimalUtil.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package thyyxxk.webserver.utils;
  2. import java.math.BigDecimal;
  3. import java.math.RoundingMode;
  4. import java.text.DecimalFormat;
  5. /**
  6. * @author dj
  7. */
  8. public class DecimalUtil {
  9. public static String add(String a, String b) {
  10. if (StringUtil.isBlank(a)) {
  11. a = "0";
  12. }
  13. if (StringUtil.isBlank(b)) {
  14. b = "0";
  15. }
  16. BigDecimal ad = new BigDecimal(a);
  17. BigDecimal bd = new BigDecimal(b);
  18. return ad.add(bd).setScale(2, RoundingMode.HALF_UP).toString();
  19. }
  20. public static String add1(String a, String b) {
  21. if (StringUtil.isBlank(a)) {
  22. a = "0";
  23. }
  24. if (StringUtil.isBlank(b)) {
  25. b = "0";
  26. }
  27. BigDecimal ad = new BigDecimal(a);
  28. BigDecimal bd = new BigDecimal(b);
  29. return ad.add(bd).setScale(0, RoundingMode.HALF_UP).toString();
  30. }
  31. public static String minus(String a, String b) {
  32. BigDecimal ad = new BigDecimal(a);
  33. BigDecimal bd = new BigDecimal(b);
  34. return ad.subtract(bd).setScale(2, RoundingMode.HALF_UP).toString();
  35. }
  36. public static String minusLink(String a, String b, String c, String d) {
  37. if (StringUtil.isBlank(a)) {
  38. a = "0";
  39. }
  40. if (StringUtil.isBlank(b)) {
  41. b = "0";
  42. }
  43. if (StringUtil.isBlank(c)) {
  44. c = "0";
  45. }
  46. if (StringUtil.isBlank(d)) {
  47. d = "0";
  48. }
  49. BigDecimal ad = new BigDecimal(a);
  50. BigDecimal bd = new BigDecimal(b);
  51. BigDecimal cd = new BigDecimal(c);
  52. BigDecimal dd = new BigDecimal(d);
  53. return ad.subtract(bd).subtract(cd).subtract(dd).setScale(2, RoundingMode.HALF_UP).toString();
  54. }
  55. public static BigDecimal add(BigDecimal a, BigDecimal b) {
  56. return a.add(b).setScale(2, RoundingMode.HALF_UP);
  57. }
  58. public static BigDecimal minus(BigDecimal a, BigDecimal b) {
  59. return a.subtract(b).setScale(2, RoundingMode.HALF_UP);
  60. }
  61. public static String divide(String a, String b, int scale) {
  62. BigDecimal ad = new BigDecimal(a);
  63. BigDecimal bd = new BigDecimal(b);
  64. return ad.divide(bd, scale, RoundingMode.DOWN).toString();
  65. }
  66. public static String moneyYuanToFen(BigDecimal fee) {
  67. BigDecimal hundred = new BigDecimal("100");
  68. return fee.multiply(hundred).setScale(0, RoundingMode.CEILING).toPlainString();
  69. }
  70. public static String getPercent(int x, int total) {
  71. String result;
  72. double v = (double) x / (double) total;
  73. DecimalFormat df = new DecimalFormat("0.00%");
  74. result = df.format(v);
  75. return result;
  76. }
  77. public static int compare(String a, String b) {
  78. BigDecimal d1 = new BigDecimal(a);
  79. BigDecimal d2 = new BigDecimal(b);
  80. return d1.compareTo(d2);
  81. }
  82. }