0
나는 대학을 위해 나의 프로젝트를 진행 중이다. 내 문제는 내가 사용자 방정식 시스템 솔버가 사용자 솔루션을 제공하고 그것이 좋은지 아닌지를 확인하는 능력을 가지고 있다는 것입니다. 해결책 체크의 내 코드는 다음과 같습니다.2 동일한 번호가 이중 자바에서 같지 않음
public void printSolution(double[] sol) {
System.out.println();
System.out.println("Write 1 if you want to show solution or write 2 if you want to solve equations");
Scanner riesenie = new Scanner(System.in);
int r = riesenie.nextInt();
int N = sol.length;
switch (r) {
case 1:
System.out.println("----------------------------------------");
System.out.println("Solution is:");
for (int i = 0; i < N; i++) {
System.out.printf("%.2f ", sol[i]);
}
System.out.println();
break;
case 2:
System.out.println("Write your solution");
Scanner vysledok = new Scanner(System.in);
double[] v = new double[N];
for (int i = 0; i < N; i++) {
v[i] = vysledok.nextDouble();
}
for (int i = 0; i < N; i++) {
if (v[i] == (sol[i])) {
System.out.println("Your solution is right !");
System.out.println();
}
else {
System.out.println("Your solution is not right, solution is:");
for (i = 0; i < N; i++) {
System.out.printf("%.2f ", sol[i]);
System.out.println();
}
}
}
break;
default:
System.out.println("Number out of range");
System.out.println();
}
출력에 문제가 있습니다. 출력 이미지를 추가하고 있습니다.
나는 우리가 BlueJ의 코드한다는 것을 추가하고있다. 도와 주셔서 감사합니다.
두배를 비교하면 안됩니다. 이는 double에 대한 두 개의 다른 값이 동일한 이진 표현을 가질 수 있기 때문입니다. Java가 구현해야하는 설명에 대해서는 IEEE-754를 참조하십시오. 그렇지만 잘 모릅니다. – user902384
그리고 힌트; 코드를 읽기가 어렵습니다. 한 가지 방법으로 모든 것을 하나의 스위치에 넣지 마십시오. 대신에, 하나씩 만하는 많은 작은 도우미 메서드를 만듭니다. 그들을 함께 사용하십시오. – GhostCat