我有
private static final BigDecimal ONE_HUNDRED = new BigDecimal(100);
private static final BigDecimal TEN = new BigDecimal(10);
Run Code Online (Sandbox Code Playgroud)
BigDecimal decimal = new BigDecimal(1050);
我需要得到 10% 我写
BigDecimal decimalResult = decimal.divide(ONE_HUNDRED).multiply(TEN)//100, 10
但是 Intellij IDE 说:
'BigDecimal.divide()' 在没有舍入模式参数的情况下调用更多...
我添加了BigDecimal.ROUND_HALF_UP和所有其他人,但我得到了错误的结果。我需要,1050/100 = 10.5 但如果我添加BigDecimal.ROUND_HALF_UPresult = 11。
如何正确划分比例参数?
小智 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();
}
Run Code Online (Sandbox Code Playgroud)
这个例子返回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);
}
}
Run Code Online (Sandbox Code Playgroud)
您应该在创建decimal变量时调整比例。
| 归档时间: |
|
| 查看次数: |
8543 次 |
| 最近记录: |