1
zj
2026-01-14 382483cf1ceb3104f243e459708d10fbf2dbcb9b
1
2 files modified
23 ■■■■ changed files
src/main/java/com/nq/service/impl/StockServiceImpl.java 19 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/vo/stock/PremarketStockVO.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -950,21 +950,22 @@
                        premarketPrice = realPrice.multiply(new BigDecimal(setting.getPrice()));
                    }
                    
                    // 计算涨跌价格 = 盘前价格 - 真实价格
                    BigDecimal chg = premarketPrice.subtract(realPrice);
                    // 计算涨跌幅 = (盘前价格 - 真实价格) / 真实价格 * 100
                    BigDecimal chgPct = BigDecimal.ZERO;
                    // 计算涨跌幅 = (盘前价格 - 真实价格) / 真实价格
                    BigDecimal hcrate = BigDecimal.ZERO;
                    if (realPrice.compareTo(BigDecimal.ZERO) > 0) {
                        chgPct = chg.divide(realPrice, 4, RoundingMode.HALF_UP)
                                .multiply(new BigDecimal("100"));
                        hcrate = premarketPrice.subtract(realPrice)
                                .divide(realPrice, 4, RoundingMode.HALF_UP);
                    }
                    // 格式化涨跌幅为带百分号的字符串
                    String hcrateP = hcrate.multiply(new BigDecimal("100"))
                            .setScale(2, RoundingMode.HALF_UP) + "%";
                    
                    PremarketStockVO vo = new PremarketStockVO();
                    vo.setCode(setting.getStockCode());
                    vo.setPrice(premarketPrice);
                    vo.setChg(chg);
                    vo.setChgPct(chgPct);
                    vo.setHcrate(hcrate);
                    vo.setHcrateP(hcrateP);
                    resultList.add(vo);
                }
            }
src/main/java/com/nq/vo/stock/PremarketStockVO.java
@@ -7,7 +7,7 @@
public class PremarketStockVO {
    private String code;
    private BigDecimal price;
    private BigDecimal chg;
    private BigDecimal chgPct;
    private BigDecimal hcrate;
    private String hcrateP;
}