情况:
public static double pi(int a) {
return (BigDecimal.valueOf(53360*sqrt(640320))).divide(computeS(a),a,RoundingMode.HALF_DOWN);
}
与:私有(private)静态BigDecimalcomputeS(int a)
问题是,当我编译程序时,它会出现不兼容的类型错误,告诉我“BigDecimal无法转换为 double
”,当您知道BigDecimal时,这似乎是无意义的.divide(BigDecimal,int,RoundingMode)
不需要任何 double,他的多态方法也不需要......
所以我有点卡在这里了。有人可以帮忙吗?谢谢!
最佳答案
问题不在于 divide
方法,问题在于您的 pi
方法必须返回一个 double
,但您返回的是一个BigDecimal
.
返回通过调用doubleValue()获得的double
就它了。
return (BigDecimal.valueOf(53360*sqrt(640320))).divide(computeS(a),a,RoundingMode.HALF_DOWN).doubleValue();
关于java - BigDecimal.divide(BD,int,RM) - BigDecimal 无法转换为双错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224886/