Lab7_5.java:79: error: incompatible types: possible lossy conversion from double to int
extra = minutesOver + .20;
^
Lab7_5.java:83: error: incompatible types: possible lossy conversion from double to int
return totalDue;
^
2 errors
웹 사이트를 둘러 보았지만 다른 사람들도이 문제를 겪었지만 의견을 보았지만 여전히 문제를 이해하지 못했습니다. 내 코드에 이중성이 없습니다. 이유는 무엇입니까? 그럴거야. 그리고 나는 또한 상징을 찾을 수 없다는 오류를 이해하지 못한다. 나는이 사실을 잠시 동안 붙잡아 두었습니다.Java에서 호환되지 않는 유형 오류
코드 :
import java.util.Scanner;
public class Lab7_5 {
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
// Declare local variables
int minutesAllowed, minutesUsed, minutesOver;
double totalDue;
String endProgram = "no";
// Loop to run program again
while (endProgram.equals("no")) {
minutesAllowed = 0;
minutesUsed = 0;
totalDue = 0;
minutesOver = 0;
// Call functions
minutesAllowed = getAllowed(minutesAllowed);
minutesUsed = getUsed(minutesUsed);
minutesOver = minutesUsed - minutesAllowed;
if (minutesOver < 0){
minutesOver = 0;
}
totalDue = calcTotal(totalDue, minutesOver, minutesUsed, minutesAllowed);
// Call functions cont.
printData(minutesAllowed, minutesUsed, totalDue, minutesOver);
System.out.println("Do you want to end the program (enter no to process another set of test scores): ");
endProgram = keyboard.next();
while (!(endProgram.equals("yes")) && !(endProgram.equals("no"))){
System.out.println("Please enter a value of yes or no");
endProgram = keyboard.nextLine();
}
}
}
public static int getAllowed(int minutesAllowed) {
System.out.println("How many minutes are allowed: ");
minutesAllowed = keyboard.nextInt();
while (minutesAllowed <200 || minutesAllowed >800) {
System.out.println("Please enter minutes between 200 and 800 ");
minutesAllowed = keyboard.nextInt();
}
return minutesAllowed;
}
public static int getUsed(int minutesUsed) {
System.out.println ("How many minutes were used: ");
minutesUsed = keyboard.nextInt();
while (minutesUsed <0) {
System.out.println("Please enter minutes of at least 0");
System.out.println("How many minutes were used: ");
minutesUsed = keyboard.nextInt();
}
return minutesUsed;
}
public static int calcTotal(double totalDue, int minutesOver, int minutesUsed, int minutesAllowed) {
int extra;
if (minutesUsed <= minutesAllowed){
totalDue = 74.99;
} else {
minutesOver = minutesUsed - minutesAllowed;
extra = minutesOver * .20;
totalDue = 74.99 + extra;
System.out.println ("You were over your minutes by" + minutesOver);
}
return totalDue;
}
public static void printData(int minutesAllowed, int minutesUsed, double totalDue, int minutesOver) {
System.out.println("----------------MONTHLY USE REPORT----------------------");
System.out.println("Minutes allowed were " + minutesAllowed);
System.out.println("Minutes used were " + minutesUsed);
System.out.println("Minutes over were " + minutesOver);
System.out.println("Total due is $ " + totalDue);
}
}
int와 double을 추가 한 다음 그 결과를 int에 할당합니다. 여기서 의도 한 행동은 무엇입니까? –
'.20'은 double입니다. – SLaks
들여 쓰기를 수정해야합니다. – SLaks