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

标签 java double bigdecimal divide incompatibletypeerror

情况:

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

与:私有(private)静态BigDecimalcomputeS(int a)

and here is the terminal

问题是,当我编译程序时,它会出现不兼容的类型错误,告诉我“BigDecimal无法转换为 double ”,当您知道BigDecimal时,这似乎是无意义的.divide(BigDecimal,int,RoundingMode) 不需要任何 double,他的多态方法也不需要......

所以我有点卡在这里了。有人可以帮忙吗?谢谢!

PS:我也尝试使用 double 而不是 BigDecimal,但正如预期的那样: terminal

最佳答案

问题不在于 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/

相关文章:

java - achartengine 图形在relativelayout 中无法正确绘制

Java - xml 列表或一个值

java - Hbase Put 时间戳 (Java) 和 hbase shell 时间戳

c++ - 重载函数调用 double 是不明确的

r - R 是否在内部将数字视为 double ?

java - 在 Java 8 中并行使用 BigDecimal 进行分组和求和

java.lang.NullPointerException : Cannot read the array length because "<local3>" is null 异常

Java - 整型/长整型、浮点型/ double

Javascript 大十进制 - N 次方根

java - 如何将字符串统一解析成BigDecimal?