用BigDecimal计算占比
方法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* @param ar ...
- SQL技巧:使用AVG()函数计算占比
计算方式对比 一般计算占比,比如转换率.留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比. 比如,要求统计报名转化率,报名转化率公式为转化率=报名人数/浏览 ...
- java 计算占比 百分比
//2. 计算占比int num = Integer.parseInt(uintCardre.getUintPersonSum());int allNum = Integer.parseInt(uin ...
- BigDecimal 计算余数
Java计算大数据,使用BigDecimal,它提供了很多方法. 通过BigDecimal取余: // 返回数组中,第一个元素是商,第二个元素是余数 public BigDecimal[] divid ...
- mysql 按时间累计计算_mysql查询——计算占比与累计占比
点击上面"蓝字"关注我们! 下表是2020年3月各产品的销量数据表(product_sales),其中包含字段序号Id.产品product.销量Sales,现在需要编写一个查询语句 ...
- 利用Java的BigDecimal计算高精度圆周率
算法1:拉马努金算法 公式如下: 不采用阶乘的版本是因为pochhammer符号的运算量要小于阶乘,一次循环只需要计算一次即可,而4n的阶乘一次循环需要计算4次 代码如下: public static ...
- BigDecimal 计算工具类
BigDecimalUtil 计算工具类 加 减 乘 除 四舍五入保留两位小数 舍弃小数 , 大于0上升 舍弃小数, 直接丢弃 package com.rely.base.utils;import j ...
- BigDecimal计算出现好多小数的问题
2019独角兽企业重金招聘Python工程师标准>>> 将double类型的数据转换成为String类型后,再使用new BigDecimal()转换后进行计算 转载于:https: ...
- 动态计算占比——Power BI
背景:某总公司旗下有若干子公司 分别位于上海(SH).北京(BJ).成都(CD).广州(GZ)等 每个子公司每年都会发生若干消费项目 如:Information Technology.Travel a ...
最新文章
- 2022-2028年中国钢丸行业市场行情监测及未来前景规划报告
- 0362计算机应用基础在线考试,0362《计算机应用基础》(本科)2017年6月期末考试指导.doc...
- oracle catalog start with,rman中进行catalog start with 无法注册部分备份文件
- FeignClient使用
- RNA干扰各种方法优缺点简介?
- boost::timer::auto_cpu_timer相关的测试程序
- 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
- Wordpress固定链接伪静态
- js tooltip之wz_tooltip使用方法和参数备忘
- python认证考试mac_Mac OS 平台使用 Python 和 Docker 创建测试用 Https Server
- bzoj2958: 序列染色3269: 序列染色
- Linux上修改open files数目
- 让Google chrome支持迅雷
- 阿里云网盘内测_叫板百度网盘?阿里云网盘内测中,下载速度是亮点
- python zookeeper api_zookeeper java api介绍
- unbuntu配置scrcpy
- 英语二 - 常用词根二
- 纽约Airbnb房源数据挖掘与房价预测评估模型
- GIS理论常识——GeoJson和TopoJson
- 《Kotlin 程序设计》第十二章 Kotlin的多线程:协程(Coroutines)