使用Java如何计算圆周率

使用Java如何计算圆周率?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

代码如下:

packagemath;
publicclassPiTest{
privatestaticintbytelimit=5;//小数后限制位数
/**
*@authorzhao33699
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//已知Pi可以用函数4*(1–1/3+1/5–1/7+…)计算,小数点后五位----计算圆周率
//思路:按照上述公式计算出5位值,和下一次5位值比较,如果相同则为最终结果,
//如果不同,则保存新值,继续与在下次的值比较直至相同
doublepitemp=0;//根据公式所得值
doublefinalpi=0;//上次所得值(小数点后五位)
doublepi=0;//本次所得值(小数点后五位)
inti=0;//计数器
doubleb=0;//公式的括号内的值
intii=20;//所得相同值次数,可限制最后是有连续ii次所得相同值
intfinalii=20;//与ii值相同,用于在ii值变化后,恢复ii值
//intiii=20;//限制相同次数
while(true){
//次数控制
if(i==1000000){
break;
}
doublers=1+2*i;
doubled=1/rs;
if(i%2==0&&i!=1){
b=b+d;
//System.out.println("---"+i+"----正------***"+b);
}else{
b=b-d;
//System.out.println("---"+i+"----负------***"+b);
}
i=i+1;
//System.out.println(b);
pitemp=(b)*4;
//System.out.println(pitemp);
//小数点后位数大于等于5位
if(String.valueOf(pitemp).length()>bytelimit){
pi=subInt(pitemp);//截取小数点后5位的值
System.out.println(i+"次---pi--####"+pi+"---final--####"
+finalpi);
//如果上次结果与本次结果相同,限制连续次数-1;
//如果不相同,不管前面连续多少次结果相同,将限制连续次数恢复初始值,并保存本次的新值,继续准备与下次比较
if(finalpi==pi){
System.out.println("第"+(finalii+1-ii)
+"次-----相同----------最终结果-------------finaoanoaof"
+pitemp);
ii=ii-1;
if(ii==0){
System.out.println("$$最终所得的小数"+pitemp);
System.out.println("$$最终所得的前五位小数"+pi);
break;
}
}else{
finalpi=pi;
ii=finalii;
}
}
}
}
//格式化小数
publicstaticdoublesubInt(doublei){
Strings=String.valueOf(i).substring(0,bytelimit+2);//获取小数点后5位
Stringss=String.valueOf(i).substring(bytelimit+2,bytelimit+3);//获取小数点第6位
doubledd=Double.parseDouble(s);//转化为小数点后保留5位的小数
//如果第6位的值大于等于5,根据四舍五入,将转化后的小数加上0.00001
if(ss.compareTo("5")>=0){
dd=dd+0.00001;
}
returndd;
}
}

运行结果:

使用Java如何计算圆周率

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2021-04-08 13:39:10
收藏
分享
海报
0 条评论
180
上一篇:常量和变量在javascript中有什么区别 下一篇:使用java怎么爬取代理IP
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码