无法从int[]转换为双错误java
我试图理解有关stackoverflow的相关问题,但没有办法。我是java新手 有这样的问题:无法从int[]转换为双错误java,java,Java,我试图理解有关stackoverflow的相关问题,但没有办法。我是java新手 有这样的问题: Type mismatch: cannot convert from int[] to double 第一条错误行表示: return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD))); E=F1(A, B, C, D, MA, MD); 第二条错误行表示: return sumVect(sumVect3(A,B,C),m
Type mismatch: cannot convert from int[] to double
第一条错误行表示:
return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
E=F1(A, B, C, D, MA, MD);
第二条错误行表示:
return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
E=F1(A, B, C, D, MA, MD);
和我的T1.java
文件
public class T1 extends Data implements Runnable{
protected T1(int N, int value) {
super(N, value);
}
public void run() {
int[][] MA, MD;
int[] A, B, C, D;
double E;
A = inputVector();
B = inputVector();
C = inputVector();
D = inputVector();
MA = inputMatrix();
MD = inputMatrix();
// Calculation F1
System.out.println("Calculator F1:....");
try {
E=F1(A, B, C, D, MA, MD);
System.out.println("F1:");
System.out.println("F1: " + E);
} catch (Exception f1) {
// TODO: handle exception
f1.printStackTrace();
}
}
private double F1(int[] A, int[] B, int[] C, int[] D, int[][] MA, int[][] MD )
{
return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
}
和data.jav
文件,可能会有帮助,所以粘贴在这里
protected static int[][] multMatrix(int[][] MA, int[][] MB){
int[][] MT = new int[MA.length][MA.length];
for (int i = 0; i < MA.length; i++) {
for (int j = 0; j < MA.length; j++) {
int s = 0;
for (int k = 0; k < MA.length; k++) {
s += MA[i][k] * MB[k][j];
MT[i][j] = s;
}
}
}
return MT;
}
protected static int multVect(int[] A, int[] B){
int v=0;
for(int i =0;i<A.length;i++){
v+=A[i]*B[i];
}
return v;
}
protected static int[] sumVect(int[] A, int[] B){
int[] Z = new int [A.length];
for(int i =0;i<A.length;i++){
Z[i]=A[i]+B[i];
}
return Z;
}
protected static int[] sumVect3(int[] A, int[] B, int[] C){
int[] Z = new int [A.length];
for(int i =0;i<A.length;i++){
Z[i]=A[i]+B[i]+C[i];
}
return Z;
}
protected static int[] multVectMatrix(int[] A, int[][] MA){
int[] V = new int[A.length];
for (int i = 0; i < A.length; i++) {
int s = 0;
for (int j = 0; j < A.length; j++) {
s += A[j]*MA[i][j];
}
V[i] = s;
}
return V;
}
受保护的静态int[]mult矩阵(int[]MA,int[]MB){
int[][]MT=新的int[MA.length][MA.length];
对于(int i=0;i 对于(int i=0;i您的sumVect
方法返回一个int
(int[]
)数组,但您正试图在F1
方法中返回它,该方法应返回一个双精度
。您应该弄清楚每个方法应返回什么,并使代码保持一致
private double F1(int[] A, int[] B, int[] C, int[] D, int[][] MA, int[][] MD )
{
// here you are returning an int[] when you should return a double
return sumVect(sumVect3(A,B,C),multVectMatrix(D,multMatrix(MA,MD)));
}
sumVect函数返回一个int[]表
函数返回一个double
你可能有输入错误你能发布你的stacktrace吗?你为什么要给double分配一个向量?