BigDecimal.divide(BD,int,RM) - BigDecimal 无法转换为 double 错误

BigDecimal.divide(BD,int,RM) - BigDecimal cannot be converted to double error

情况:

  public static double pi(int a) {
    return (BigDecimal.valueOf(53360*sqrt(640320))).divide(computeS(a),a,RoundingMode.HALF_DOWN);
  }

与:private static BigDecimal computeS(int a)

问题是,当我编译程序时,它会出现类型不兼容的错误,告诉我“BigDecimal cannot be converted to double”当你知道 BigDecimal.divide(BigDecimal,int,RoundingMode) 不需要任何 double 和他的多态方法既不...

所以我有点卡在这里了:-/有人能帮忙吗?谢谢! :-)

PS:我还尝试将 BigDecimal 的双倍数插入,但正如所料:

问题不在于divide方法,问题在于你的pi方法必须return一个double,但你是return正在 BigDecimal .

Return 你通过调用 doubleValue() 得到的 double .

return (BigDecimal.valueOf(53360*sqrt(640320))).divide(computeS(a),a,RoundingMode.HALF_DOWN).doubleValue();