方法是使用String的format方法,贴代码如下:
import java.util.*;
import java.math.*;
public class Main{
public static void f(int r) {
double pi = Math.PI;
double s = r*r*pi;
System.out.println(String.format("%.7f", s));
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int r = in.nextInt();
f(r);
}
}
之前我使用BigDecimal这个方法来做,但是只通过了70,因为对于太大的数字,它默认变成了科学计数法。
通过70%代码如下:
public class Main{
public static BigDecimal f(int r) {
BigDecimal pi = BigDecimal.valueOf(Math.PI);
BigDecimal r1 = BigDecimal.valueOf(r);
BigDecimal s = pi.multiply(r1);
return s.multiply(r1);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int r = in.nextInt();
BigDecimal s = f(r);
System.out.println(s);
double c = s.setScale(7, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(c);
}
}