我用 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);
}
输出是这样的:
array1[0]=0.005,array1[1]=0.010,array1[2]=0.015,array1[3]=0.020,array1[4]=0.025 ......
array2[0]=1.000,array2[1]=0.995,array2[2]=0.990,array2[3]=0.985,array2[4]=0.980 ......
当我尝试使用 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]);
}
输出是相同的,在 6 之后,由于双精度的不精确,它开始带来不同的结果,我尝试使用 BigDecimal,但我仍然不明白它是如何工作的,或者如何将结果添加到数组中.