import javax.swing.*;
import java.math.*;
import java.lang.*;
import java.util.*;
public class PI{//殴拉的计算PI的公式
public static void main (String args[ ]){
String s=JOptionPane.showInputDialog("请输入要计算的位数",
JOptionPane.YES_NO_OPTION);
int w=Integer.parseInt(s);
BigDecimal adect,adecv,adecf;
adecf=BigDecimal.valueOf(0L,0);
adect=BigDecimal.valueOf(5,1);
adecv=BigDecimal.valueOf(1).divide(BigDecimal.valueOf(3),w,1);
long start=System.currentTimeMillis();
for(int i=1;i<10000;i+=2){
adecf=adecf.add(adect.divide(BigDecimal.valueOf(i),w,1)).
add(adecv.divide(BigDecimal.valueOf(i),w,1));
adect=adect.divide(BigDecimal.valueOf(4),w,1);
adect=adect.multiply(BigDecimal.valueOf(-1));
adecv=adecv.divide(BigDecimal.valueOf(9),w,1);
adecv=adecv.multiply(BigDecimal.valueOf(-1));}
adecf=adecf.multiply(BigDecimal.valueOf(4));
long finish=System.currentTimeMillis();
System.out.println("圆周率为:"+adecf.toString());
JOptionPane.showMessageDialog(null,"圆周率为"+adecf,
"完成计算用了"+(finish-start)+"毫秒",JOptionPane.YES_OPTION);
System.exit(0);
}}
再来一个例子,也是计算圆周率的。不过,现在用上了大整数,大浮点数,
可以计算很多位的。还不给分啊!