<잘못된 예제>
import java.util.Scanner;
public class SungJuk {
public static void main(String[] args) {
int sum = 0;
float avg = 0f;
Scanner sc = new Scanner(System.in);
System.out.print("국어 성적을 입력하세요 : ");
int kor = sc.nextInt();
System.out.print("수학 성적을 입력하세요 : ");
int mat = sc.nextInt();
sum = kor + mat;
avg = sum/2;
System.out.println("합 계 : " + sum + "점 입니다.");
System.out.println("평 균 : " + avg + "점 입니다.");
}
}
이렇게 출력을 하면 출력 할 때에는 소수점 뒷자리가 싹 날아가고 계속 n.0으로만 출력이 된다. 변수 선언 할 때 float 값에 0f도 해줬는데 왜!
import java.util.Scanner;
public class SungJuk {
public static void main(String[] args) {
int sum = 0;
float avg = 0f;
Scanner sc = new Scanner(System.in);
System.out.print("국어 성적을 입력하세요 : ");
int kor = sc.nextInt();
System.out.print("수학 성적을 입력하세요 : ");
int mat = sc.nextInt();
sum = kor + mat;
avg = sum/2.0f;
System.out.println("합 계 : " + sum + "점 입니다.");
System.out.println("평 균 : " + avg + "점 입니다.");
}
}
이유는 아래의 avg 변수에서 sum/2가 아니라 sum/2.0f를 해줘야 한다는 것! 또는 sum/2f를 해줘도 된다. 다만 f는 빼면 안 된다.
import java.util.Scanner;
public class SungJuk {
public static void main(String[] args) {
int sum = 0;
double avg = 0;
Scanner sc = new Scanner(System.in);
System.out.print("국어 성적을 입력하세요 : ");
int kor = sc.nextInt();
System.out.print("수학 성적을 입력하세요 : ");
int mat = sc.nextInt();
sum = kor + mat;
avg = sum/2.0;
System.out.println("합 계 : " + sum + "점 입니다.");
System.out.println("평 균 : " + avg + "점 입니다.");
}
}
더블로 바꿨을 때는 이렇다. 더블은 기본 데이터 타입이라서 d가 생략 되어도 된다.
'개발일지 > Java + Spring' 카테고리의 다른 글
[Java] File 함수로 파일 탐색 + try-catch 예외처리 (0) | 2021.09.17 |
---|---|
[java] 배열의 설명과 예제 (0) | 2021.09.17 |
[java] 0916 정리 및 예제 (0) | 2021.09.16 |
[java] 문자열 비교 메소드 3가지(대소문자 구별?) (0) | 2021.09.16 |
[java] 객체 설명과 Scanner 객체 불러와서 사용 (0) | 2021.09.16 |