Java Double无法解除引用

CTU*_*ago -3 java bigdecimal

我需要乘以radius*radius*pi找到圆的确切区域,但我写下的代码不起作用.它是不断给予双重不能被解除引用的错误...

错误

 ----jGRASP exec: javac -g Circle.java
Circle.java:7: error: double cannot be dereferenced
      BigDecimal area = radius.multiply(pi);
                              ^
1 error
Run Code Online (Sandbox Code Playgroud)

import java.math.*;
public class Circle {
   public BigDecimal findArea(double radius){
      double pi = 3.14159;
      radius = radius * radius;
      BigDecimal bd = new BigDecimal("1");
      BigDecimal area = pi.multiply(radius);
      return area;
   }
}
Run Code Online (Sandbox Code Playgroud)

fab*_*ian 5

解除引用不适用于基本类型.double是一种原始类型.

因此

pi.multiply(radius)
Run Code Online (Sandbox Code Playgroud)

是一个无效的表达式.

你可以使用这样的东西:

BigDecimal area = BigDecimal.valueOf(pi).multiply(BigDecimal.valueOf(radius));
Run Code Online (Sandbox Code Playgroud)

或这个

BigDecimal area = BigDecimal.valueOf(pi*radius);
Run Code Online (Sandbox Code Playgroud)

代替.