| | |
| | | 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); |
| | | } |
| | | } |