Java 在循环中添加双变量

Java 在循环中添加双变量,java,double,bigdecimal,Java,Double,Bigdecimal,我用C#编写了一个程序,这次我必须用java编写,当我尝试加减一个简单的数字时,比如: double array1 = new double array1[200]; double array2 = new double array2[200]; for (int var = 1; var < 200; var++) { array1[var] = Math.Round(array1[var] + 0.005,3); arra

我用C#编写了一个程序,这次我必须用java编写,当我尝试加减一个简单的数字时,比如:

double array1 = new double array1[200];
double array2 = new double array2[200];
for (int var = 1; var < 200; var++)
        {
            array1[var] = Math.Round(array1[var] + 0.005,3);
            array2[var] = Math.Round(1 - array1[var],3);
        }
当我尝试使用java时,我使用了下面的代码:

 double array1 = new double[200];
    double array2 = new double[200];
    for (int var = 1; var < 200; var++)
            {
                array1[var] = (array1[var] + 0.005);
                array2[var] = (1 - array1[var]);
            }
double array1=新的双精度[200];
双数组2=新的双数组[200];
对于(int-var=1;var<200;var++)
{
阵列1[var]=(阵列1[var]+0.005);
array2[var]=(1-array1[var]);
}

输出是一样的,在6个1之后,由于双精度的不精确性,它开始带来不同的结果,我尝试使用BigDecimal,但我仍然不知道它是如何工作的,或者如何在数组中添加结果。

无意冒犯,但您必须认真学习java 101。。。 第一

这简直是违法的。。我不知道它是如何编译的,更不用说给出同样的结果了

您正在将数组分配给基元。。。严重错误

第二

这是另一个

除非
array1
是一个类名(尽管名称不好),否则你不能有
array1[200]


查看一些基本的java教程,然后到期。。祝你好运……)

精度用大十进制术语“刻度”(setScale)表示。但是,如果精度为3,为什么不使用
long
填充双精度值*1000,四舍五入。

什么是
(array1[var]+0.005,3)
呢?这不是有效的代码。(你不是在调用一个方法。)第一个代码是用C#编码的,数学循环使结果只在小数点后出现特定的数字,在这个例子中,在总和之后我只需要小数点后的3位数字听起来像是家庭作业,如果是,请这样标记。@JUAN:你错过了我的要点。第二个代码段完全无效。如果你不给我们你正在运行的实际代码,我们怎么能帮助你呢?看看解释中的错误,这不是家庭作业,这是我工作的一部分,但我是java新手,我在C#方面有更多的经验,这部分我没有预料到,只是在我写问题时出现了一些错误,这仍然不是我需要回答的部分,你说这只是基本问题,但不是我要解释的问题
 double array1 = new double[200];
    double array2 = new double[200];
    for (int var = 1; var < 200; var++)
            {
                array1[var] = (array1[var] + 0.005);
                array2[var] = (1 - array1[var]);
            }
double array1 = new array1[200];
new array1[200];