我有这段代码将BigDecimal除以1000000。
我尝试过RoundingMode.DOWN,BigDecimal.ROUND_DOWN。
public static BigDecimal divide1000000(BigDecimal aBigDecimal) {
if(aBigDecimal!=null)
return aBigDecimal.divide(new BigDecimal("1000000"));
return aBigDecimal;
}
BigDecimal B= new BigDecimal("99999999999999999"); /*99,999,999,999,999,999*/
BigDecimal a=divide1000000(B);
结果a = 100000000000(100,000,000,000)
如果我想要
结果a = 99999999999(99,999,999,999)
如何更改divide1000000?
答案 0 :(得分:0)
我认为您要寻找的RoundingMode是ROUND_DOWN或ROUND_FLOOR。您可以使用其中任何一个。这都是:-
BigDecimal a= new BigDecimal("99999999999.999999");
BigDecimal b= new BigDecimal(0);
b = a.setScale(0, BigDecimal.ROUND_UP); // 100000000000
b = a.setScale(0, BigDecimal.ROUND_CEILING); // 100000000000
b = a.setScale(0, BigDecimal.ROUND_DOWN); // 99999999999
b = a.setScale(0, BigDecimal.ROUND_FLOOR); // 99999999999
b = a.setScale(0, BigDecimal.ROUND_HALF_DOWN); // 100000000000
b = a.setScale(0, BigDecimal.ROUND_HALF_EVEN); // 100000000000
b = a.setScale(0, BigDecimal.ROUND_HALF_UP); // 100000000000
您可以使用ROUND_DOWN或ROUND_FLOOR。