我有过
private static final BigDecimal ONE_HUNDRED = new BigDecimal(100);
private static final BigDecimal TEN = new BigDecimal(10);BigDecimal decimal = new BigDecimal(1050);我需要得到10%我写的BigDecimal decimalResult = decimal.divide(ONE_HUNDRED).multiply(TEN)//100, 10
但是Intellij说:
“BigDecimal.divide()”调用时没有舍入模式参数.
我添加了BigDecimal.ROUND_HALF_UP和其他所有内容,但是我得到了错误的结果。我需要1050/100 = 10.5,但是如果我添加BigDecimal.ROUND_HALF_UP结果= 11。
如何正确地用尺度参数进行划分?
发布于 2019-07-11 07:39:28
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();
}发布于 2017-04-03 11:21:18
此示例返回105.0000
public class TestBigDecimal {
static BigDecimal decimal = new BigDecimal(1050).setScale(4, BigDecimal.ROUND_HALF_UP);
static BigDecimal ONE_HUNDRED = new BigDecimal(100);
static BigDecimal TEN = new BigDecimal(10);
public static void main(String[] args)
{
BigDecimal decimalResult = decimal.divide(ONE_HUNDRED).multiply(TEN) ;
System.out.println(decimalResult);
}
}在创建decimal变量时,您应该调整比例。
https://stackoverflow.com/questions/43183245
复制相似问题