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

时间:2018-01-12 11:01:02

标签: java double bigdecimal divide incompatibletypeerror

情况:

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

with:private static BigDecimal computeS(int a)

and here is the terminal

问题在于,当我编译程序时,它会产生一个不兼容的类型错误,告诉我" BigDecimal cannot be converted to double"当你知道BigDecimal.divide(BigDecimal,int,RoundingMode)不需要任何双重和他的多态方法时,这似乎是不存在的......

所以我有点卡在这里: - /任何人都可以帮忙吗?谢谢! : - )

PS:我也试过把一个BigDecimal的双重放置,但是我认为: terminal

1 个答案:

答案 0 :(得分:2)

问题不在于divide方法,问题是您的pi方法必须返回double,但您要返回BigDecimal

通过在其上调用doubleValue()返回double

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