Java中Math.PI就表示π。其源码为public static final double PI = 3.14159265358979323846。
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的漠河网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
比如说你要算半径为2的圆的面积,代码如下:
double pi=Math.PI
int r=2
double S=pi*r*r
运行结果如下图
扩展资料
package 计算π的近似值;
import java.util.Scanner;
public class Example1 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("请输入精度:");
double z=scan.nextDouble();
System.out.println("在精度为"+z+"的条件下,π约等于:\n"+jishuPI(z));
}
static double jishuPI(double z){
double sum=2;
int n=1;
int m=3;
double t=2;
while(tz){
t=t*n/m;
sum=sum+t;
n++;
m+=2;
}
return sum;
}
}
参考资料:Java官网 API-Class Math
建议你这样试试看:
我们分析下题目,考虑一下容易忽略的地方
然后我们将公式转化为如下代码:
package cn点抗 .baidu.zhidaoquestion.pi;
public class StrivesForThePI {
public static void main(String[] args) {
System.out.println("jdk的API中提供的π = "+Math.PI);
//arctg()函数参数x;
double x = 1;
//验证 π/4 = arctg(1);
double qtrPI = strives(x);
//求π并输出
System.out.println("π = " + 4*qtrPI);
}
/**
* 求解函数
* @return double s
*/
public static double strives(double x){
int i = 1 ;
double n = 1, d = 0.000001,s = 0,sTmp = 1;
double errorRange = ssTmp?s-sTmp:sTmp-s;
while(errorRange d){//误差控制,由s和sTemp的差决定误差 ,
//如果i=偶数 i = (-1)*i
if(i%2==0){
n = (-1);
}else{
n = 1;
}
//保存中间值,计算误差使用
sTmp = s;
//计算Arg
s = s + n*((double)x/(2*i-1));
//误差范围 排除第一项
if(i!=1){
errorRange = ssTmp?s-sTmp:sTmp-s;
}
i++;
}
System.out.println("误差为:"+errorRange);
if(x==1){
System.out.println("π/4 = " + s);
}
return s;
}
}
这样做的好处:思路清晰,注释明了
注意事项:这个并不是唯一的答案,还可以优化,欢迎大家自由讨论.
如有帮助,感谢你的采纳!
原理:根据圆面积的公式:s=πR2,当R=1时,S=π。由于圆的方程是:x^2+y^2=1(x^2为X的平方的意思),因此1/4圆面积为x轴、y轴和上述方程所包围的部分。如果在1*1的矩形中均匀地落入随机点,则落入1/4园中的点的概率就是1/4圆的面积。其4倍,就是圆面积。由于半径为1,该面积的值为π的值。程序如下:importjava.util.Random;publicclasspai{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubintN=100000;/*定义随机点数*/intn=0,i,resulttimes;doubler;doublex,y;/*坐标*/Randoms=newRandom();for(resulttimes=0;resulttimes10;resulttimes++){/*输出十次结果*/for(i=1;i=N;i++){x=s.nextDouble();/*在0~1之间产生一个随机x坐标*/y=s.nextDouble();/*在0~1之间产生一个随机y坐标*/if(x*x+y*y=1.0)n++;/*统计落入单位圆中的点数*/}r=(double)n/N;System.out.println("Theresultofpaiis"+r*4);/*计算出π的值*/n=0;}}}
代码如下:
//圆周率 π = 4∑(k=0,..∞)(-1)^k/(2k+1)
//π = 3.14159265358979323846
public class yzq {
public static void main(String[] args) {
// TODO Auto-generated method
stub
int n=0;
double a=0;
for (n=0;n=10000000;n++ )
{
a = a + 4*Math.pow(-1,n)/(2*n+1);
System.out.println("第 "+n+"
位
"+a);
}
System.out.println("最后一位
"+a);
}
}
//程序运行结果
//第10
次计算
3.232315809405594
//第100
次计算
3.1514934010709914
//第1000
次计算
3.1425916543395442
//第10,000
次计算
3.1416926435905346
//第100,000
次计算
3.1416026534897203
//第1000,000
次计算
3.1415936535887745
//第10,000,000次计算
3.1415927535897814
//第100,000,000次计算
3.141592643589326
//第999,999,990次计算
3.1415926545880506
//第999,999,991次计算
3.1415926525880504
//第999,999,992次计算
3.1415926545880506
//第999,999,993次计算
3.1415926525880504
//第999,999,994次计算
3.1415926545880506
//第999,999,995次计算
3.1415926525880504
//第999,999,996次计算
3.1415926545880506
//第999,999,997次计算
3.1415926525880504
//第999,999,998次计算
3.1415926545880506
//第999,999,999次计算
3.1415926525880504
//第1,000,000,000次计算
3.1415926545880506