首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BigDecimal除以标度

BigDecimal除以标度
EN

Stack Overflow用户
提问于 2017-04-03 11:16:45
回答 2查看 14.7K关注 0票数 10

我有过

代码语言:javascript
复制
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

如何正确地用尺度参数进行划分?

EN

回答 2

Stack Overflow用户

发布于 2019-07-11 07:39:28

代码语言:javascript
复制
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();
}
票数 13
EN

Stack Overflow用户

发布于 2017-04-03 11:21:18

此示例返回105.0000

代码语言:javascript
复制
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变量时,您应该调整比例。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43183245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档