/、 * @date 2019年9月10日10:17:37 * @author 崔世良 * @param preNum 同期数 * @param sufNum 往期数 */ public String percentBigDecimal(BigDecimal preNum,BigDecimal sufNum){ double result = countDecimal(preNum,sufNum); if(result>0){ return "上升"+result+"%"; } if(result<0){ return "下降"+Math.abs(result)+"%"; } if(result==0){ return "持平"; } return null; } public double countDecimal(BigDecimal preNum,BigDecimal sufNum){ boolean preBoolean = verifyNum(preNum); boolean sufBoolean = verifyNum(sufNum); //同时为true计算 if(preBoolean && sufBoolean){ boolean b = verifyEqual(preNum, sufNum); if (b == false){ return realCountDecimal(preNum,sufNum); } if (b){ return 0; } } if(preBoolean == false && sufBoolean ==false){ return 0; } if(sufBoolean ==false){ return 100; } if(preBoolean ==false){ return -100; } return 0; } //验证数字是否为零和null public boolean verifyNum(BigDecimal num){ if(null !=num && num.compareTo(BigDecimal.ZERO)!=0 ){ return true; } return false; } //验证两个数字是否相等 public boolean verifyEqual(BigDecimal preNum,BigDecimal sufNum){ int n = preNum.compareTo(sufNum); //比较 -1 小于 0 等于 1 大于 if(n==0){ return true; } return false; } //真正计算 public double realCountDecimal(BigDecimal preNum,BigDecimal sufNum){ //(前面的数字-后面的数字)/后面的数字*100 BigDecimal bigDecimal = (preNum.subtract(sufNum)).divide(sufNum,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); if (bigDecimal.compareTo(BigDecimal.ZERO) !=0){ return bigDecimal.doubleValue(); } return 0; }
今天的文章
java记录计算同比上升下降分享到此就结束了,感谢您的阅读。
java记录计算同比上升下降
java记录计算同比上升下降date2019 年 9 月 10 日 10 17 37 author 崔世良 parampreNum 同期数 paramsufNum 往期数 publicString BigDecimalpr BigDecimalsu doubleresult countDecimal java 同比降幅怎么计算
Unity减小安装包的体积(210MB减小到7MB) 转载
上一篇
2025-01-03 10:27
如何注册一个属于你的Twitter(推特)账号
下一篇
2025-01-03 10:21
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/100688.html