BigDecimal常用方法详解
IDEA中的BigDecimal常用方法详解
1. 在项目中我们通常会求同比和环比我们就可以使用BigDecima;
2.案例如下:
@Overridepublic Map getJsrPzfx(String xzqh) {String jnjt = DateUtils.DateToString().substring(0, 10).replace("-", "");if (StringUtils.isNotBlank(xzqh)) {if (xzqh.endsWith("0000")) {xzqh = xzqh.substring(0, 2);} else if (xzqh.endsWith("00")) {xzqh = xzqh.substring(0, 4);} else if (xzqh.length() > 6) {xzqh = xzqh.substring(0, 6);} else {xzqh = xzqh;}}String sql = "select COALESCE(sum(case when zjcx like 'A%' then sl else 0 end),0) as az\n" +",COALESCE(sum(case when zjcx like 'B%' then sl else 0 end),0) as bz\n" +",COALESCE(sum(case when zjcx like 'C%' then sl else 0 end),0) as cz\n" +",COALESCE(sum(sl),0) as zbyl\n" +"from app_dri_byl_day where xzqh like '" + xzqh + "%' and day_id<='" + jnjt + "'";Record record = Db.use("dsjmh").findFirst(sql);Map map = new HashMap<>();String az = record.getStr("az");String bz = record.getStr("bz");String cz = record.getStr("cz");String zbyl = record.getStr("zbyl");//保有量、A照、B照、C照if (null != record) {map.put("az", az);map.put("bz", bz);map.put("cz", cz);}if (zbyl.equals("0")) {String azzb = "0";String bzzb = "0";String czzb = "0";map.put("azzb", azzb);map.put("bzzb", bzzb);map.put("czzb", czzb);} else {String azzb = new BigDecimal(az).divide(new BigDecimal(zbyl), 2, BigDecimal.ROUND_HALF_UP) + "";String bzzb = new BigDecimal(bz).divide(new BigDecimal(zbyl), 2, BigDecimal.ROUND_HALF_UP) + "";String czzb = new BigDecimal(cz).divide(new BigDecimal(zbyl), 2, BigDecimal.ROUND_HALF_UP) + "";map.put("azzb", azzb);map.put("bzzb", bzzb);map.put("czzb", czzb);}return map;} 
1. 常用方法
- add(BigDecimal): BigDecimal对象中的值相加,返回BigDecimal对象
- subtract(BigDecimal): BigDecimal对象中的值相减,返回BigDecimal对象
- multiply(BigDecimal): BigDecimal对象中的值相乘,返回BigDecimal对象
- divide(BigDecimal): BigDecimal对象中的值相除,返回BigDecimal对象
- toString(): 将BigDecimal对象中的值转换成字符串
- doubleValue(): 将BigDecimal对象中的值转换成双精度数
- floatValue(): 将BigDecimal对象中的值转换成单精度数
- longValue(): 将BigDecimal对象中的值转换成长整数
- intValue(): 将BigDecimal对象中的值转换成整数
- a.max (b) 比较取最大值
- a.min(b) 比较取最小值
- a.abs() 取最绝对值
- negate(): 取相反数
2.BigDecimal大小比较
// 两个 BigDecimal 比较大小
int a = bigdemical.compareTo(bigdemical2)// 于0比较大小
int a = bigdemical.compareTo(BigDecimal.ZERO) 结果:
a = -1,表示bigdemical小于bigdemical2;
a = 0,表示bigdemical等于bigdemical2;
a = 1,表示bigdemical大于bigdemical2;
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
