方法1:只适合int型

BigDecimalUtils.calculatePercentage工具类,自动判断除0情况,默认保留两位小数

/*** 计算百分比 保留两位小数* 被除数/除数*100% 保留两位小数** @param dividend 被除数* @param divisor  除数 不为零* @return percentage*/public static BigDecimal calculatePercentage(int dividend, int divisor) {BigDecimal percentage = BigDecimal.ZERO;if (divisor < dividend) {return new BigDecimal(100);}if (divisor != 0) {percentage = BigDecimal.valueOf(dividend).divide(BigDecimal.valueOf(divisor), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));}return percentage.setScale(2, RoundingMode.HALF_UP);}
BigDecimal offlineRate = BigDecimalUtils.calculatePercentage(Integer.parseInt(data.getOfflineNum()),Integer.parseInt(data.getTotalCarNum()));

方法二:适用多种数据类型

都转成bigdecimal,保留小数点后4位

        BigDecimal a = new BigDecimal(String.valueOf(offlinecarnum));BigDecimal b = new BigDecimal(String.valueOf(offlinecarnum));BigDecimal c = new BigDecimal(String.valueOf(notUpgradeNum));BigDecimal t = new BigDecimal(0);t = t.add(a);t = t.add(b);t = t.add(c);String onlineRate = t.equals(0)?"0":a.divide(t,4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).toString();String offlineRate = t.equals(0)?"0":b.divide(t,4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).toString();String notUpgradeRate = t.equals(0)?"0":c.divide(t,4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).toString();

用BigDecimal计算占比相关推荐

  1. 计算占比并保证百分比和为1

    计算占比并保证百分比和为1 常用场景 代码 常用场景 用于动态计算页面元素的百分比占比 可视化中扇形统计图的显示数值修正 代码 /*** 计算数组中各项的占比,保证百分比和等于1* @param ar ...

  2. SQL技巧:使用AVG()函数计算占比

    计算方式对比 一般计算占比,比如转换率.留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比. 比如,要求统计报名转化率,报名转化率公式为转化率=报名人数/浏览 ...

  3. java 计算占比 百分比

    //2. 计算占比int num = Integer.parseInt(uintCardre.getUintPersonSum());int allNum = Integer.parseInt(uin ...

  4. BigDecimal 计算余数

    Java计算大数据,使用BigDecimal,它提供了很多方法. 通过BigDecimal取余: // 返回数组中,第一个元素是商,第二个元素是余数 public BigDecimal[] divid ...

  5. mysql 按时间累计计算_mysql查询——计算占比与累计占比

    点击上面"蓝字"关注我们! 下表是2020年3月各产品的销量数据表(product_sales),其中包含字段序号Id.产品product.销量Sales,现在需要编写一个查询语句 ...

  6. 利用Java的BigDecimal计算高精度圆周率

    算法1:拉马努金算法 公式如下: 不采用阶乘的版本是因为pochhammer符号的运算量要小于阶乘,一次循环只需要计算一次即可,而4n的阶乘一次循环需要计算4次 代码如下: public static ...

  7. BigDecimal 计算工具类

    BigDecimalUtil 计算工具类 加 减 乘 除 四舍五入保留两位小数 舍弃小数 , 大于0上升 舍弃小数, 直接丢弃 package com.rely.base.utils;import j ...

  8. BigDecimal计算出现好多小数的问题

    2019独角兽企业重金招聘Python工程师标准>>> 将double类型的数据转换成为String类型后,再使用new BigDecimal()转换后进行计算 转载于:https: ...

  9. 动态计算占比——Power BI

    背景:某总公司旗下有若干子公司 分别位于上海(SH).北京(BJ).成都(CD).广州(GZ)等 每个子公司每年都会发生若干消费项目 如:Information Technology.Travel a ...

最新文章

  1. 2022-2028年中国钢丸行业市场行情监测及未来前景规划报告
  2. 0362计算机应用基础在线考试,0362《计算机应用基础》(本科)2017年6月期末考试指导.doc...
  3. oracle catalog start with,rman中进行catalog start with 无法注册部分备份文件
  4. FeignClient使用
  5. RNA干扰各种方法优缺点简介?
  6. boost::timer::auto_cpu_timer相关的测试程序
  7. 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
  8. Wordpress固定链接伪静态
  9. js tooltip之wz_tooltip使用方法和参数备忘
  10. python认证考试mac_Mac OS 平台使用 Python 和 Docker 创建测试用 Https Server
  11. bzoj2958: 序列染色3269: 序列染色
  12. Linux上修改open files数目
  13. 让Google chrome支持迅雷
  14. 阿里云网盘内测_叫板百度网盘?阿里云网盘内测中,下载速度是亮点
  15. python zookeeper api_zookeeper java api介绍
  16. unbuntu配置scrcpy
  17. 英语二 - 常用词根二
  18. 纽约Airbnb房源数据挖掘与房价预测评估模型
  19. GIS理论常识——GeoJson和TopoJson
  20. 《Kotlin 程序设计》第十二章 Kotlin的多线程:协程(Coroutines)

热门文章

  1. ACM-ICPC 2018 徐州赛区网络预赛 - A. Hard to prepare - (计数递归)
  2. 6类水果吃成绝代佳人
  3. 云原生的未来技术发展趋势
  4. element图片预览添加下载图片功能.
  5. 2021年中国网络直播行业发展现状及行业发展前景分析[图]
  6. SAP CPI and PO
  7. antlr4 实战 idea
  8. Mac访问windows共享文件夹
  9. java 文件包含漏洞_远程文件包含漏洞(pikachu)
  10. 在Spring Boot使用Undertow服务