我试图理解stackoverflow上的相关问题,但没办法。我是新的Java。无法从int []转换为双重错误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);
而且我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;
}
你可以发布你的stacktrace吗? – gandra404
为什么你将一个向量赋值给double? – Manu