我試圖理解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