首页 > 其他 > 详细

BigDecimal精确到几位以及四舍五入

时间:2021-04-03 19:54:57      阅读:33      评论:0      收藏:0      [点我收藏+]


//BigDecimal流reduce()进行累加
BigDecimal stoNum = entry.getValue().stream()
.map(order -> new BigDecimal(order.getStorageNum()).multiply(new BigDecimal(order.getSellPrice() == null ? "0.00" : order.getSellPrice())))
.reduce(new BigDecimal(0), BigDecimal::add);






BigDecimal result = null;
//判断结果是否为零
BigDecimal bigDecimalZero = BigDecimal.ZERO.setScale(8, BigDecimal.ROUND_HALF_UP);

String str = String.valueOf(stoNum.toPlainString());
int length = str.substring(str.indexOf(".") + 1, str.length()).length();
if(length>8){
//小数点后大于八位四舍五入
result = stoNum.setScale(8, BigDecimal.ROUND_HALF_UP);
}else{
//小数点后不足8位小数补0
result=new BigDecimal(new DecimalFormat("0.00000000#").format(stoNum));
}
System.out.println("值为: = " + result);

BigDecimal精确到几位以及四舍五入

原文:https://www.cnblogs.com/ankang123/p/14613726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!