IDEA中的BigDecimal常用方法详解
1. 在项目中我们通常会求同比和环比我们就可以使用BigDecima;
2.案例如下:
@Override
public Map<String, Object> 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<String, Object> 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;
原文地址:http://www.cnblogs.com/atao-BigData/p/16843602.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性