小编use*_*779的帖子

使用BigDecimal在Java中计算PI时出错

我必须zecimale使用Leibniz公式计算PI 来计算PI到一定数量的小数(在变量中给出).我不知道为什么,但BigDecimal没有一个加法或减法没有修改PI的值.

为什么是这样?

int zecimale = 0;

if (args.length > 0) {
    try {
        zecimale = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument" + " must be an integer");
        System.exit(1);
    }
}

long start = System.nanoTime();
double numitor = 1;
BigDecimal numitor1 = new BigDecimal(1/numitor); 

BigDecimal pi = new BigDecimal(1);

for(int x = 0; pi.scale() <= zecimale; x++)
{
    numitor1 = new BigDecimal(1 / numitor);

    if(x % 2 == 0)
    {
       pi.add(numitor1);
    }
    else
    {
       pi.subtract(numitor1);
    }
    BigDecimal …
Run Code Online (Sandbox Code Playgroud)

java pi

2
推荐指数
1
解决办法
530
查看次数

标签 统计

java ×1

pi ×1