Browse Source

update:标记价格保留小数的有效位数,即从第一个不是0的数开始算起V1

lvzhiqiang 2 years ago
parent
commit
7f3119911e

+ 3 - 2
src/main/java/top/lvzhiqiang/service/impl/CoinServiceImpl.java

@@ -33,6 +33,7 @@ import top.lvzhiqiang.util.*;
 import javax.annotation.Resource;
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
+import java.math.MathContext;
 import java.math.RoundingMode;
 import java.security.InvalidKeyException;
 import java.text.DecimalFormat;
@@ -1350,9 +1351,9 @@ public class CoinServiceImpl implements CoinService {
             // 最近更新时间 保证金数量 (保证金币种) 平均开仓价 未实现盈亏 预估强平价
             jsonObject.put("cTime", DateUtils.longToString(jsonObject.getLong("cTime")));
             jsonObject.put("margin", new BigDecimal(jsonObject.getString("margin")).setScale(4, RoundingMode.HALF_UP));
-            jsonObject.put("averageOpenPrice", new BigDecimal(jsonObject.getString("averageOpenPrice")).setScale(4, RoundingMode.HALF_UP));
+            jsonObject.put("averageOpenPrice", new BigDecimal(jsonObject.getString("averageOpenPrice")).divide(BigDecimal.ONE, new MathContext(4)));
             jsonObject.put("unrealizedPL", new BigDecimal(jsonObject.getString("unrealizedPL")).setScale(4, RoundingMode.HALF_UP));
-            jsonObject.put("liquidationPrice", new BigDecimal(jsonObject.getString("liquidationPrice")).setScale(4, RoundingMode.HALF_UP));
+            jsonObject.put("liquidationPrice", new BigDecimal(jsonObject.getString("liquidationPrice")).divide(BigDecimal.ONE, new MathContext(4)));
 
             // 未实现盈亏
             if (jsonObject.getBigDecimal("unrealizedPL").compareTo(BigDecimal.ZERO) < 0) {

+ 7 - 0
src/test/java/Test.java

@@ -7,6 +7,10 @@ import top.lvzhiqiang.entity.VideoInfoPool;
 import top.lvzhiqiang.util.DateUtils;
 
 import java.io.*;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -61,5 +65,8 @@ public class Test {
 
         LocalDate highestHistoricalDate =  LocalDate.parse("2021-11-10T14:24:11.849Z",DateUtils.utcTimeFormatter);
         System.out.println(highestHistoricalDate);
+
+        BigDecimal bigDecimal = new BigDecimal("0.00000325222");
+        System.out.println(bigDecimal.divide(BigDecimal.ONE,new MathContext(2)));
     }
 }