我有
private static final BigDecimal ONE_HUNDRED = new BigDecimal(100);
private static final BigDecimal TEN = new BigDecimal(10);
BigDecimal 小数 = new BigDecimal(1050);
我需要获得 10% 的写作成果
BigDecimal十进制结果=decimal.divide(ONE_HUNDRED).multiply(TEN)//100, 10
但是 Intellij IDE 说:
'BigDecimal.divide()' called without a rounding mode argument more...
我添加了 BigDecimal.ROUND_HALF_UP
和所有其他内容,但我得到了错误的结果。我需要 1050/100 = 10.5
,但如果我添加 BigDecimal.ROUND_HALF_UP
结果 = 11
。
如何正确地除以比例参数?
最佳答案
public static double divide(double d1, double d2) {
BigDecimal b1 = new BigDecimal(d1);
BigDecimal b2 = new BigDecimal(d2);
return b1.divide(b2, 2, RoundingMode.DOWN).doubleValue();
}
关于java - BigDecimal 带刻度除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43183245/