From 9a731aebce2df54fe3dab3c663e7943572ec7abf Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 26 七月 2022 11:34:56 +0800
Subject: [PATCH] 优化小数点后4位
---
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
index 282a05b..084690f 100755
--- a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
+++ b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -1925,19 +1925,19 @@
//鍦ㄥ綋鍓嶆湀涓� 杩欏潡鏈夐棶棰�
if (toDate.getTime() < newFromMaxDay.getTime().getTime()) {
monthDay = new BigDecimal(newFrom.getActualMaximum(Calendar.DAY_OF_MONTH));
- return tmpDays.divide(monthDay, 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(result)).doubleValue();
+ return tmpDays.divide(monthDay, 4, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(result)).doubleValue();
}
// 涓婃湀澶╂暟
days = (newFromMaxDay.getTimeInMillis() - t1) * 1.00 / (24 * 60 * 60 * 1000);
tmpDays = new BigDecimal(days);
monthDay = new BigDecimal(newFrom.getActualMaximum(Calendar.DAY_OF_MONTH));
- BigDecimal preRresMonth = tmpDays.divide(monthDay, 2, BigDecimal.ROUND_HALF_UP);
+ BigDecimal preRresMonth = tmpDays.divide(monthDay, 4, BigDecimal.ROUND_HALF_UP);
//涓嬫湀澶╂暟
days = (t2 - newFromMaxDay.getTimeInMillis()) * 1.00 / (24 * 60 * 60 * 1000);
tmpDays = new BigDecimal(days);
monthDay = new BigDecimal(newFromMaxDay.getActualMaximum(Calendar.DAY_OF_MONTH));
- resMonth = tmpDays.divide(monthDay, 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(result)).add(preRresMonth).doubleValue();
+ resMonth = tmpDays.divide(monthDay, 4, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(result)).add(preRresMonth).doubleValue();
return resMonth;
}
@@ -2233,7 +2233,7 @@
BigDecimal curFeePrice = new BigDecimal(feeDto.getFeePrice());
if (feeDto.getEndTime().getTime() < rateStartTime.getTime()) {
curOweMonth = dayCompare(feeDto.getEndTime(), rateStartTime);
- oweAmountDec = curFeePrice.multiply(new BigDecimal(curOweMonth)).setScale(2, BigDecimal.ROUND_HALF_UP);
+ oweAmountDec = curFeePrice.multiply(new BigDecimal(curOweMonth)).setScale(4, BigDecimal.ROUND_HALF_UP);
}
curOweMonth = dayCompare(rateStartTime, feeDto.getDeadlineTime());
@@ -2250,7 +2250,7 @@
Date curEndTime = null;
for (int cycleIndex = 0; cycleIndex < maxCycle; cycleIndex++) {
//褰撴湡澧為暱閮ㄥ垎
- rateDec = preCycleAmount.multiply(new BigDecimal(rate)).setScale(2, BigDecimal.ROUND_HALF_UP);
+ rateDec = preCycleAmount.multiply(new BigDecimal(rate)).setScale(4, BigDecimal.ROUND_HALF_UP);
//澧為暱鍛ㄦ湡鐨勫�嶆暟
curCycle = (cycleIndex + 1) * rateCycle;
@@ -2261,8 +2261,8 @@
curEndTime = curEndTimeCalender.getTime();
if (curCycle > curOweMonth) {
//涓嶈冻澧為暱鍛ㄦ湡澧為暱鐜�
- rateDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(rateDec).setScale(2, BigDecimal.ROUND_HALF_UP);
- lastRateAmountDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(preCycleAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
+ rateDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(rateDec).setScale(4, BigDecimal.ROUND_HALF_UP);
+ lastRateAmountDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(preCycleAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
addTotalAmount = addTotalAmount.add(rateDec).add(lastRateAmountDec);
continue;
}
--
Gitblit v1.8.0