金额工具类
import java.math.BigDecimal;
import java.text.DecimalFormat;
public class AmountUtil {
public static DecimalFormat fnum = new DecimalFormat("##0.00000000000000000000");
public static String formatMoney(String valueStr) {
if (valueStr == null || valueStr == "") {
valueStr = "0.00";
}
return fnum.format(new BigDecimal(valueStr));
}
public static String moneyAdd(String valueStr, String addStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal augend = new BigDecimal(addStr);
return fnum.format(value.add(augend));
}
public static BigDecimal moneyAdd(BigDecimal valueStr, BigDecimal minusValueStr) {
return valueStr.add(minusValueStr);
}
public static String moneySub(String valueStr, String minusValueStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal subtrahend = new BigDecimal(minusValueStr);
return fnum.format(value.subtract(subtrahend));
}
public static BigDecimal moneySub(BigDecimal value, BigDecimal subtrahend) {
return value.subtract(subtrahend);
}
public static String moneyMul(String valueStr, String minusValueStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal mulValue = new BigDecimal(minusValueStr);
return fnum.format(value.multiply(mulValue));
}
public static BigDecimal moneyMul(BigDecimal value, BigDecimal mulValue) {
return value.multiply(mulValue);
}
public static String moneydiv(String valueStr, String minusValueStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal divideValue = new BigDecimal(minusValueStr);
return fnum.format(value.divide(divideValue, 2, BigDecimal.ROUND_HALF_UP));
}
public static BigDecimal moneydiv(BigDecimal value, BigDecimal divideValue) {
return value.divide(divideValue, 2, BigDecimal.ROUND_HALF_UP);
}
public static boolean moneyComp(String valueStr, String compValueStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal compValue = new BigDecimal(compValueStr);
int result = value.compareTo(compValue);
if (result >= 0) {
return true;
} else {
return false;
}
}
public static boolean moneyComp(BigDecimal valueStr, BigDecimal compValueStr) {
int result = valueStr.compareTo(compValueStr);
if (result >= 0) {
return true;
} else {
return false;
}
}
public static String moneyMulOfNotPoint(String valueStr, String divideStr) {
BigDecimal value = new BigDecimal(valueStr);
BigDecimal mulValue = new BigDecimal(divideStr);
valueStr = fnum.format(value.multiply(mulValue));
return fnum.format(value.multiply(mulValue)).substring(0, valueStr.length() - 3);
}
public static String addComma(String str) {
try {
String banNum = "";
if (str.contains(".")) {
String[] arr = str.split("\\.");
if (arr.length == 2) {
str = arr[0];
banNum = "." + arr[1];
}
}
String reverseStr = new StringBuilder(str).reverse().toString();
String strTemp = "";
for (int i = 0; i < reverseStr.length(); i++) {
if (i * 3 + 3 > reverseStr.length()) {
strTemp += reverseStr.substring(i * 3, reverseStr.length());
break;
}
strTemp += reverseStr.substring(i * 3, i * 3 + 3) + ",";
}
if (strTemp.endsWith(",")) {
strTemp = strTemp.substring(0, strTemp.length() - 1);
}
String resultStr = new StringBuilder(strTemp).reverse().toString();
resultStr += banNum;
return resultStr;
} catch (Exception e) {
return str;
}
}
}