加密金额截取说明
EbUtils.bigDecimalFormat(EbUtils.getBigDecimal(withdrawInfo.getAmountDecimal(), 8))
是砍位,不是四舍五入
EbUtils.bigDecimalFormat(EbUtils.getBigDecimal(11.053456789, 8)) 结果: 11.05345678 ,而不是 11.05345679
EbUtils.bigDecimalFormat(EbUtils.getBigDecimal(11.05, 8)) 结果: 11.05
11.053456703 { 11.05345670 结果: 11.0534567}
11.053456003 { 11.05345600 结果: 11.053456}
1.小数若 过8位,先砍掉。
2.再转成decimal ,若最后有0,去掉。 不用特意凑足8位。
//删除指定位数后面的数字,如2.35会被删除为2.3 ,是砍位,不是四舍五入。
public static BigDecimal getBigDecimal(BigDecimal value, int scale) {
return value.setScale(scale, BigDecimal.ROUND_DOWN);
}
/**
* 格式化BigDecimal,不以科学计数法显示
*
* @param d1
* @return
*/
public static String bigDecimalFormat(BigDecimal d1) {
return d1.stripTrailingZeros().toPlainString();
}
EbUtils.bigDecimalFormat(EbUtils.getBigDecimal(item.getHotSum(), 8))
1. double和decimal的ToString("#.##")方法使用的是四舍五入;
decimal aaa = decimal.Parse("11.053456789");
string aab = aaa.ToString("0.########");
结果:11.05345679 四舍五入了。
网友评论