/**
* 获取最小差值
*/
public static BigDecimal getMinMinDiffValue(String source,List<String> list){
//差值
List<BigDecimal> subtractList = new ArrayList<>();
BigDecimal value = new BigDecimal(source);
for (String s : list) {
BigDecimal bigDecimal = new BigDecimal(s);
BigDecimal subtract = value.subtract(bigDecimal).abs();
if(subtract.compareTo(BigDecimal.ZERO) == 0){
return value;
}
subtractList.add(subtract);
}
BigDecimal min = subtractList.stream()
.min(Comparator.naturalOrder())
.orElse(BigDecimal.ZERO);
for (String s : list) {
BigDecimal bigDecimal = new BigDecimal(s);
if (value.subtract(bigDecimal).abs().compareTo(min) == 0) {
value = bigDecimal;
break;
}
}
return value;
}
在List中找出一个和当前值最相近的值