在列表中寻找与指定数字最接近的值
注:输入列表为字符串类型,可以自行更改;
/**
* 找到最近价值
*
* @param lst 列表
* @param target 输入
* @return {@link String}
*/
public static String findNearestValue(List<String> lst, String target) {
try {
double targetDouble = NumberUtil.parseDouble(target);
double nearestValue = NumberUtil.parseDouble(lst.get(0));
double diff = Math.abs(NumberUtil.parseDouble(lst.get(0)) - targetDouble);
for (int i = 1; i < lst.size(); i++) {
double newDiff = Math.abs(NumberUtil.parseDouble(lst.get(i)) - targetDouble);
if (newDiff < diff) {
nearestValue = NumberUtil.parseDouble(lst.get(i));
diff = newDiff;
}
}
return StrUtil.toString(nearestValue);
} catch (Exception e) {
return "";
}
}