增加公共方法

This commit is contained in:
2025-04-10 09:12:32 +08:00
parent ab04775db1
commit 9860f1c54f
2 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
package com.njcn.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author hongawen
* @version 1.0
* @data 2025/3/28 11:23
*/
public class PubUtils {
/**
* 根据参数返回double的四舍五入值
*
* @param i 保留的位数
* @param value double原值
*/
public static double doubleRound(int i, double value) {
BigDecimal bp = new BigDecimal(value);
return bp.setScale(i, RoundingMode.HALF_UP).doubleValue();
}
/**
* 根据参数返回double的四舍五入值
*
* @param i 保留的位数
* @param value double原值
*/
public static String doubleRoundStr(int i, double value) {
BigDecimal bp = new BigDecimal(value);
return bp.setScale(i, RoundingMode.HALF_UP).toPlainString();
}
public static void sortByDoubleValue(List<Map<String, String>> list, String sortKey) {
if (list == null || list.isEmpty()) {
return;
}
list.sort((map1, map2) -> {
Double value1 = parseDoubleSafely(map1.get(sortKey));
Double value2 = parseDoubleSafely(map2.get(sortKey));
return Double.compare(value1, value2);
});
}
private static double parseDoubleSafely(String value) {
return Optional.ofNullable(value)
.map(v -> {
try {
return Double.parseDouble(v);
} catch (NumberFormatException e) {
// 无效值排在最前
return Double.MIN_VALUE;
}
})
// null值排在最前
.orElse(Double.MIN_VALUE);
}
}