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();
情况:
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();