62,628
社区成员
发帖
与我相关
我的任务
分享
import java.math.*;
public class CaculatePI {
public static String forPI(int a) {
// PI=4*(1-1/3+1/5-1/7+...)
BigDecimal result, index, temp, flag, b, c;
b=new BigDecimal(1,new MathContext(a,RoundingMode.HALF_UP)); // numerator
c=new BigDecimal(2);
result=new BigDecimal(0,new MathContext(a,RoundingMode.HALF_UP));
temp=new BigDecimal(1,new MathContext(a,RoundingMode.HALF_UP));
index=new BigDecimal(1); // denominator
flag=new BigDecimal(0.1);
while(temp.abs().compareTo(flag)==1) {
temp=b.divide(index);
result.add(temp);
index.add(c);
index=index.negate();
}
result=result.multiply(new BigDecimal(4));
return result.toPlainString();
}
public static void main(String [] args) {
System.out.println(forPI(10));
}
}