Преглед изворни кода

fix:round6 兜底 NaN/Infinity, 避免 BigDecimal.valueOf 抛 NumberFormatException

yangxiaohui пре 1 недеља
родитељ
комит
0f4a83fdce

+ 4 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/funnel/FunnelAggregator.java

@@ -220,8 +220,11 @@ public class FunnelAggregator {
         return o;
     }
 
-    /** double → 保留 6 位小数 */
+    /** double → 保留 6 位小数 (NaN / Infinity 兜底为 0,避免 BigDecimal.valueOf 抛 NumberFormatException) */
     private static BigDecimal round6(double v) {
+        if (Double.isNaN(v) || Double.isInfinite(v)) {
+            return BigDecimal.ZERO.setScale(6);
+        }
         return BigDecimal.valueOf(v).setScale(6, RoundingMode.HALF_UP);
     }