/**
* 获取两个double 之间的值
*
* @param maxNo
* @param minNo
* @return
*/
private double getMiddleNum(double maxNo, double minNo) {
if (minNo > maxNo) {
double tmp = minNo;
minNo = maxNo;
maxNo = tmp;
}
int maxPoint = StringUtils.split("" + maxNo, ".")[1].length();
int minPoint = StringUtils.split("" + minNo, ".")[1].length();
int scale = minPoint;
if (maxPoint >= minPoint) {
scale = maxPoint;
}
//求差值,四舍五入保持小数位数和原值一样
double subValue = new BigDecimal(maxNo - minNo).setScale(scale, RoundingMode.HALF_UP).doubleValue();
logger.info("min::" + minNo + " max::" + maxNo + " middle::" + subValue + " point::" + scale);
//如果差值相差值去小数取整数为1,小数点位数需要加1
if (StringUtils.replace(StringUtils.replace(subValue + "", ".", ""), "0", "").equals("1")) {
return new BigDecimal(Math.random() * subValue + minNo).setScale(scale + 1, RoundingMode.FLOOR).doubleValue();
}
return new BigDecimal(Math.random() * subValue + minNo).setScale(scale, RoundingMode.FLOOR).doubleValue();
}