package thyyxxk.webserver.utils; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.DecimalFormat; /** * @author dj */ public class DecimalUtil { public static String add(String a, String b) { if (StringUtil.isBlank(a)) { a = "0"; } if (StringUtil.isBlank(b)) { b = "0"; } BigDecimal ad = new BigDecimal(a); BigDecimal bd = new BigDecimal(b); return ad.add(bd).setScale(2, RoundingMode.HALF_UP).toString(); } public static String add1(String a, String b) { if (StringUtil.isBlank(a)) { a = "0"; } if (StringUtil.isBlank(b)) { b = "0"; } BigDecimal ad = new BigDecimal(a); BigDecimal bd = new BigDecimal(b); return ad.add(bd).setScale(0, RoundingMode.HALF_UP).toString(); } public static String minus(String a, String b) { BigDecimal ad = new BigDecimal(a); BigDecimal bd = new BigDecimal(b); return ad.subtract(bd).setScale(2, RoundingMode.HALF_UP).toString(); } public static String minusLink(String a, String b, String c, String d) { if (StringUtil.isBlank(a)) { a = "0"; } if (StringUtil.isBlank(b)) { b = "0"; } if (StringUtil.isBlank(c)) { c = "0"; } if (StringUtil.isBlank(d)) { d = "0"; } BigDecimal ad = new BigDecimal(a); BigDecimal bd = new BigDecimal(b); BigDecimal cd = new BigDecimal(c); BigDecimal dd = new BigDecimal(d); return ad.subtract(bd).subtract(cd).subtract(dd).setScale(2, RoundingMode.HALF_UP).toString(); } public static BigDecimal add(BigDecimal a, BigDecimal b) { return a.add(b).setScale(2, RoundingMode.HALF_UP); } public static BigDecimal minus(BigDecimal a, BigDecimal b) { return a.subtract(b).setScale(2, RoundingMode.HALF_UP); } public static String divide(String a, String b, int scale) { BigDecimal ad = new BigDecimal(a); BigDecimal bd = new BigDecimal(b); return ad.divide(bd, scale, RoundingMode.DOWN).toString(); } public static String moneyYuanToFen(BigDecimal fee) { BigDecimal hundred = new BigDecimal("100"); return fee.multiply(hundred).setScale(0, RoundingMode.CEILING).toPlainString(); } public static String getPercent(int x, int total) { String result; double v = (double) x / (double) total; DecimalFormat df = new DecimalFormat("0.00%"); result = df.format(v); return result; } public static int compare(String a, String b) { BigDecimal d1 = new BigDecimal(a); BigDecimal d2 = new BigDecimal(b); return d1.compareTo(d2); } }