使用double值填充double数组

时间:2016-09-24 23:24:35

标签: java arrays

我试图用循环中的double值填充我的double数组,但是我收到以下错误: 不兼容的类型:可能从double到int的有损转换

这是我的代码:

public class ThreadGraph extends Thread {

//initializing the variables

public static double x1=0.0;               //left endpoint of interval
public double x2=1.0;                      //right endpoint of interval
public double y=4/(1+Math.pow(x1, 2));     //Deriving the two parallel trapezium lengths
public int n=1000000;                      //The Number of trapezia, 1000000 gives greater accuracy for deriving pi
public double h=(x2-x1)/n;                 //Each trapezium's constant height
public double trapeziaAreasSum=0;          //This variable will store the sum of the areas of the trapezia
static double[]valuesOfx1=new double[1000000];
static double[]valuesOfy=new double[1000000];


//this method divides the area under the curve into trapezia

public void run(){

for(double x1=0.0; x1<1.0; x1=x1+0.000001, y=4/(1+Math.pow(x1,2))){

valuesOfx1[x1] = x1;       //ERROR OCCURS HERE  
valuesOfy[y] = y;          //ERROR OCCURS HERE

}}}

可能是什么问题?因为循环的输出是double的形式,我尝试将这些结果添加到double数组但我得到一个int错误:不兼容的类型:可能有损转换从double到int

2 个答案:

答案 0 :(得分:2)

您正在尝试为数组的0.000001位置指定值。那不会飞。数组/列表元素的位置是完整的整数 - 0,1,2,3等

double数组意味着它是一个值为double类型的数组,而不是这些值的半数可以是双倍。

答案 1 :(得分:0)

你不能拥有一个数组的非整数索引(所以就像foo [0.25]没有意义)。您需要使用允许双打(对象的大写D)作为键的数据类型(如果迭代顺序很重要,则为LinkedHashMap)或类似。或者你使用int作为索引并除以图的双X值(这将更节省空间)。你的电话。