解决多账户金额计算的bug

This commit is contained in:
神话
2022-05-07 21:50:41 +08:00
parent 3c35db87e1
commit d51868f994
2 changed files with 24 additions and 5 deletions

View File

@@ -526,10 +526,10 @@ public class AccountService {
public String getAccountStrByIdAndMoney(Map<Long,String> accountMap, String accountIdList, String accountMoneyList){
StringBuffer sb = new StringBuffer();
List<Long> idList = StringUtil.strToLongList(accountIdList);
List<Long> moneyList = StringUtil.strToLongList(accountMoneyList);
List<BigDecimal> moneyList = StringUtil.strToBigDecimalList(accountMoneyList);
for (int i = 0; i < idList.size(); i++) {
Long id = idList.get(i);
BigDecimal money = BigDecimal.valueOf(moneyList.get(i)).abs();
BigDecimal money = moneyList.get(i).abs();
sb.append(accountMap.get(id) + "(" + money + "元) ");
}
return sb.toString();

View File

@@ -4,6 +4,7 @@ import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -177,10 +178,10 @@ public class StringUtil {
return new ArrayList<String>();
}
public static int getArrSum(String[] strings) {
int sum = 0;
public static BigDecimal getArrSum(String[] strings) {
BigDecimal sum = BigDecimal.ZERO;
for(int i=0;i<strings.length;i++){
sum=sum+ Integer.parseInt(strings[i]);
sum = sum.add(new BigDecimal(strings[i]));
}
return sum;
}
@@ -203,6 +204,24 @@ public class StringUtil {
return idList;
}
/**
* String字符串转成List<BigDecimal>数据格式
* String str = "1,2,3,4,5,6" -> List<BigDecimal> listBigDecimal [1,2,3,4,5,6];
*
* @param strArr
* @return
*/
public static List<BigDecimal> strToBigDecimalList(String strArr) {
List<BigDecimal> idList=new ArrayList<>();
String[] d=strArr.split(",");
for (int i = 0, size = d.length; i < size; i++) {
if(d[i]!=null) {
idList.add(new BigDecimal(d[i]));
}
}
return idList;
}
/**
* String字符串转成List<String>数据格式
* String str = "1,2,3,4,5,6" -> List<Long> listLong [1,2,3,4,5,6];