Java 试图计算Pi,但只得到1

Java 试图计算Pi,但只得到1,java,pi,Java,Pi,我对Java还是相当陌生,我正在尝试不使用Math.Pi()来计算Pi。唯一的问题是,我得到的答案是“1”之后 这是给我的公式 double pi = 1; boolean add = false; for(int i=3; i<1000; i += 2) { if(add) { pi += 1/i; } else { pi -= 1/i; } ad

我对Java还是相当陌生,我正在尝试不使用Math.Pi()来计算Pi。唯一的问题是,我得到的答案是“1”之后

这是给我的公式

    double pi = 1;
    boolean add = false;

    for(int i=3; i<1000; i += 2) {

        if(add) {
            pi += 1/i;
        } else {
            pi -= 1/i;
        }
        add = !add;
        System.out.println(pi);
    }
    System.out.println("pi: " + 4*pi);
double pi=1;
布尔加法=假;

对于(inti=3;i除以整数得到一个整数

1
是一个整数。
i
是一个整数。除法得到一个整数

1
a
double
。附加可选的浮点后缀
d
d

pi += 1.0d / i ;
此外,像我这样的一些人为了清晰起见,也加入了括号,尽管在这种情况下是可选的

pi += ( 1.0d / i  ) ;

1/i
更改为
1.0/i
。错误在于您正在进行整数除法。除非i为1,否则整数除法中的1/i将始终为0。因此,0始终添加到pi中,并且它从不从1更改。哇,这不是我最聪明的时刻。谢谢。在每次迭代中,求正数或负数
1.0
可能会快得多:
double coeff=-1.0;对于(…){pi+=coeff/i;coeff=-coeff;}