情况:
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)
问题在于,当我编译程序时,它会产生一个不兼容的类型错误,告诉我" BigDecimal cannot be converted to double
"当你知道BigDecimal.divide(BigDecimal,int,RoundingMode)
不需要任何双重和他的多态方法时,这似乎是不存在的......
所以我有点卡在这里: - /任何人都可以帮忙吗?谢谢! : - )
答案 0 :(得分:2)
问题不在于divide
方法,问题是您的pi
方法必须返回double
,但您要返回BigDecimal
。
通过在其上调用doubleValue()返回double
。
return (BigDecimal.valueOf(53360*sqrt(640320))).divide(computeS(a),a,RoundingMode.HALF_DOWN).doubleValue();