package com.gunshi.project.xyt.util; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; import java.util.Map; public class DataHandleUtil { public static BigDecimal calcData(BigDecimal rz, Map map,List list) { //库容曲线中最近的一组水位 BigDecimal lowerRz = new BigDecimal(0); BigDecimal upperRz = new BigDecimal(0); //库容曲线中最近的一组水位对应的库容 BigDecimal lowerW = new BigDecimal(0); BigDecimal upperW = new BigDecimal(0); for(int i=0;i= 0 && rz.compareTo(list.get(i+1)) <= 0) { lowerRz = list.get(i); upperRz = list.get(i+1); lowerW = map.get(lowerRz); upperW = map.get(upperRz); break; } } BigDecimal diff = rz.subtract(lowerRz); return lowerW.add(diff.multiply(upperW.subtract(lowerW)).divide(upperRz.subtract(lowerRz),2,RoundingMode.UP)); } }