double a = 5.0 / 2.0 // 2.5
double aa = 5 / 2 // 2.0
int b = 4 / 2 // 2
int c = 5 / 2 // 2.5 (x) ==> 2 (o)
자동 변환 (implicit conversion): 자동 변환이 되는 경우에는 문제가 발생하지 않는다. 이러한 자동 변환은 더 큰 타입으로 대입 시 발생한다.
// 자동 변환 (더 큰 타입으로 대입될 때)
double p = 2; // 2 => 2.0
int n = 5 / 2; // 2
double q = n; // 2 => 2.0
직접 변환 (explicit conversion): double은 int에 대입될 수 없다. 강제로 소수점을 버리고 정수로 만들 수는 있다. 이러한 문법을 캐스팅 (casting)이라고 한다.
// 에러 발생
int r = 10.4; // ERROR
// 실수를 정수로 강제 캐스팅
int r = (int) 10.4; // 10.4 => 10
%d
: 문자열 사이에 정수를 삽입하고 싶을 때int age = 4;
System.out.printf("훈이는 나이는 %d세입니다.", age);
int age = 4;
int tail = 1;
System.out.printf("훈이의 나이는 %d이고, 꼬리는 %d개 입니다.", age, tail);
//출력
훈이의 나이는 4이고, 꼬리는 1개 입니다.
%f
: 실수형 변수 출력
소수점 이하 자릿 수 설정
// 소수점 이하 2자리까지 출력 => 3.14
double pi = 3.14159265;
System.out.printf("%.2f\n", pi);
// 소수점 이하 5자리까지 출력 => 3.14159
double pi = 3.14159265;
System.out.printf("%.5f\n", pi);
%s
: 문자열 변수 출력
\n
: 줄 내림. 엔터 효과가 필요할 때 사용, printf()
는 줄내림 효과가 기본으로 없음
(int)
: 캐스팅, 실수를 정수로 강제 변환하기
int a = (int) 10.4; // a = 10
(int)
를 붙여서 캐스팅 가능double weight = 7.5;
System.out.printf("몸무게 : %dkg", (int) weight);
//출력
몸무게 : 7kg
public class plus {
public static void main(String[] args) {
String strSeven = "7";
String strPi = "3.14";
//형변환
int a = Integer.parseInt(strSeven);
double b = Double.parseDouble(strPi);
//숫자 연산
double c = a + b;
//출력
System.out.printf("%d + %.2f = %.2f", a, b, c);
}
}
//출력
7 + 3.14 = 10.14
👉
Math 클래스
: 수학에서 사용되는 변수 및 함수들을 제공한다.// 원주율 - Math.PI double pi = Math.PI; // 3.14159265.. // 절대값 - Math.abs(); double x = Math.abs(-9.81); // 9.81 // 반올림 - Math.round(); long n = Math.round(10.6); // 11
public class round {
public static void main (String[] args) {
double r = Double.parseDouble(args[0]);
double pie = Math.PI;
double S = pie * r * r;
System.out.printf("반지름이 %.0f인 원의 넓이 => %.3f", r, S);
}
}
👉 오류