Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java用序列的前8项近似pi_Java_Pi - Fatal编程技术网

使用java用序列的前8项近似pi

使用java用序列的前8项近似pi,java,pi,Java,Pi,我刚开始编程,需要为类做一个赋值,其中我使用序列中的前8项近似pi。我需要创建一个初始值为1的变量“Nexterm”,初始值为1的变量“Denominor”,以及初始值为0的变量“series”。当我运行它时,我得到了第一个项,但它只显示了一行零。我真的不知道我在做什么 public class ApproxPI { public static void main(String[] args) { int nextTerm = 1; int den

我刚开始编程,需要为类做一个赋值,其中我使用序列中的前8项近似pi。我需要创建一个初始值为1的变量“Nexterm”,初始值为1的变量“Denominor”,以及初始值为0的变量“series”。当我运行它时,我得到了第一个项,但它只显示了一行零。我真的不知道我在做什么

public class ApproxPI
{
    public static void main(String[] args)
    {
        int nextTerm = 1;
        int denominator = 1;
        int series = 0;

        for (int denominator = 1; denominator <= 8; denominator++) {
            series = ((-1 * ((-1 * nextTerm) / denominator)) * 4);
            System.out.println("Pi is approximately" + series);
        }   
    }
}
公共类ApproxPI
{
公共静态void main(字符串[]args)
{
int-nexterm=1;
int分母=1;
int系列=0;

对于(int denominator=1;denominator我不知道计算PI的方法,但您肯定应该初始化您的float和1.0,而不是1。 e、 x

float nexterm=1.0;而不是int nexterm=1.0


对每个变量执行此操作以确保功能

为什么不更新
nexterm
呢?它将始终等于
1
,一个
int
,与您显示的代码相同。因此,您的循环将相当于:

series = ( -1 * (( -1 * 1 ) / denominator )) / 4;
或同等地

series = ( -1 * ( -1 / denominator )) / 4;

每次通过时,因为是
int
算术丢弃分数:

( 1 / 1 ) / 4 => 1 / 4 => 0
( 1 / 2 ) / 4 => 0 / 4 => 0
( 1 / 3 ) / 4 => 0 / 4 => 0
. . .
( 1 / 8 ) / 4 => 0 / 4 => 0
不要对变量和文本使用
int
算术。也不要对变量和文本使用
float
。仅使用
int
值永远无法计算π

此外,即使你做对了,你的输出也会像:

Pi is approximately3
Pi is approximately1
Pi is approximately4
Pi is approximately1
Pi is approximately5
. . .
这可能不是你想要的

这种人工演练的算法我被教导称为“铅笔测试”。用(虚拟的)铅笔和纸精确地遵循逻辑,看看它真正做什么,而不是你认为它做什么


您不需要声明和初始化
分母
两次。您需要修复
nexterm

的使用。该解释没有解释
int
计算不起作用的原因,应该建议使用
double
而不是
float
。它还忽略了
nexterm的误用e> 。
Pi is approximately3
Pi is approximately1
Pi is approximately4
Pi is approximately1
Pi is approximately5
. . .