zoukankan      html  css  js  c++  java
  • 计算增长率

    /**
         * 计算增长率
         * @param currVal 当元素前值
         * @param preVal  上一个元素值
         * @return Map<String, String>
         */
        private Map<String, String> dealGrowthRate(Number currVal, Number preVal) {
            // 区分正负增长
            String preStr = "+";
            // 页面颜色标识
            String color = "green";
            // 增长率字符
            String growthRateStr = "";
            // 类型转换
            BigDecimal currValue = new BigDecimal("0.00");
            BigDecimal preValue = new BigDecimal("0.00");
    
            if (currVal instanceof Long && preVal instanceof Long) {
                // 类型转换
                currValue = BigDecimal.valueOf((Long) currVal);
                preValue = BigDecimal.valueOf((Long) preVal);
            } else if (currVal instanceof BigDecimal && preVal instanceof BigDecimal) {
                // 类型转换
                currValue = (BigDecimal) currVal;
                preValue = (BigDecimal) preVal;
            }
    
            // 增长率
            BigDecimal growthRate;
            if (0 == preValue.compareTo(BigDecimal.ZERO)) {
                if (0 == currValue.compareTo(BigDecimal.ZERO)) {
                    preStr = "";
                }
                growthRateStr = preStr;
            } else {
                // 计算增长率
                growthRate = currValue.subtract(preValue).divide(preValue, 4, RoundingMode.HALF_UP)
                        .multiply(new BigDecimal("100"));
                if (0 == growthRate.compareTo(BigDecimal.ZERO)) {
                    preStr = "";
                } else if (0 > growthRate.compareTo(BigDecimal.ZERO)) {
                    growthRate = growthRate.negate();
                    preStr = "-";
                    color = "red";
                }
    
                String bigDecimalStr = "";
                // 增长率
                BigDecimal bigDecimal = growthRate.setScale(2, BigDecimal.ROUND_HALF_UP);
                if (bigDecimal != null) {
                    bigDecimalStr = bigDecimal.toString();
                    if (bigDecimalStr.contains(".00")) {
                        // 增长率为整数,去除小数点
                        bigDecimalStr = bigDecimalStr.substring(0, bigDecimalStr.indexOf("."));
                    }
                }
                growthRateStr = preStr + bigDecimalStr + "%";
            }
    
            // 返回结果
            Map<String, String> growthRateMap = new HashMap<>();
            growthRateMap.put("color", color);
            growthRateMap.put("growthRateStr", growthRateStr);
            return growthRateMap;
        }
    随笔看心情
  • 相关阅读:
    JQuery onload、ready概念介绍及使用方法
    jquery获取第几个元素的方法总结
    CSS中隐藏内容的3种方法及属性值
    jQuery获取页面及个元素高度、宽度【转】
    数据仓库原理<2>:数据仓库系统的体系结构
    数据仓库原理<1>:数据库与数据仓库
    题注在论文图表编号中的使用
    初见Python<7>:Python操作mysql
    初见Python<5>:条件、循环和其他语句
    初见Python<4>:字典
  • 原文地址:https://www.cnblogs.com/stromgao/p/14978040.html
Copyright © 2011-2022 走看看