(char)(숫자 + '0')
'문자' - '0'
어떤것이든
+ ""
String.valueOf(변수나 리터럴)
int i = 10;
String s1 = i + ""; // s1 = "10"
String s2 = String.valueOf(i); // s2 = "10"
Integer.parseInt("문자열");
: 정수
Double.parseDouble("문자열");
: 실수
... 각 리퍼클래스마다 존재한다.
Integer.valueOf("문자열");
: 정수
원래 반환타입이 해당 래퍼클래스
BUT 오토박싱으로 인해 int
로 해도 자동으로 받아준다.
int i = Integer.parseInt("100"); // i = 100
int i2 = Integer.valueOf("100"); // i2 = 100
Integer i3 = Integer.valueOf("100"); // i3 = 100
"문자열".charAt(0);
public class Ex2_12 {
public static void main(String[] args) {
// 형변환
System.out.println("3".charAt(0)); //문자3
//문자열 -> 문자
System.out.println(Integer.parseInt("3") + 1); //숫자4
System.out.println(Double.parseDouble("3.14"));//숫자3.14
//문자열 -> 숫자
System.out.println(3 + '0'); //3+48
System.out.println('3' + '0'); //51+48
System.out.println((char)(3 + '0')); //51을 문자로
//숫자 -> 문자
System.out.println('3' - '0'); //51-48 //숫자3
//문자 -> 숫자
System.out.println('3' + "3"); //문자열33
System.out.println("3" + 3); //문자열33
System.out.println("3" + "3"); //문자열33
//-> 문자열
}
}
3
4
3.14
51
99
3
3
33
33
33
(type)
Math
1. 소수점 아래 버림 -> 정수로
(int)
형변환int a = (int) 0.5;
(int)
를 붙이면 소수점 아래는 버리고 정수만 남게 된다.0
Math.floor(숫자)
Math.floor(숫자)
2. 소수점 올림 -> 정수로
Math.ceil(숫자)
Math.ceil(숫자)
public class number {
public static void main(String[] args) {
//Operator 연산자
System.out.println(6+2); // 8
System.out.println(6-2); // 4
System.out.println(6*2); // 12
System.out.println(6/2); // 3
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.floor(Math.PI)); // 소수점 버림 3.0
System.out.println(Math.ceil(Math.PI)); // 소수점 올림 4.0
}
}
3. 소수 첫째 자리에서 반올림 -> 정수로
(int) (변수 + 0.5)
public class Main {
public static void main(String[] args) {
double A = 0.4;
int a = (int) (A + 0.5); // 0.9
System.out.println(a); // 0
double B = 0.5;
int b = (int) (B + 0.5); // 1.0
System.out.println(b); // 1
double C = 0.9;
int c = (int) (C + 0.5); // 1.4
System.out.println(c); // 1
}
}
Math.round(숫자)
long 변수명a = Math.round(숫자)
long
으로 받아야 한다.4. ✨✨👀 소수 n번째 자리에서 반올림
Math.round(숫자 * 10의 n-1제곱) / 10의 n-1제곱.0
public class Ex3_11 {
public static void main(String[] args) {
double pi = 3.141592;
//소수 첫째자리에서 반올림하기->정수, 3
long ollimPi = Math.round(pi); //중요!! long으로 받기
System.out.println(ollimPi);
//4번째 자리에서 반올림하기, 3.142
double shortPi = Math.round(pi * 1000) / 1000.0;
double shortPi2 = ((int)(pi * 1000 + 0.5)) / 1000.0;
//중요!! 1000.0으로 타입이 맞춰짐
System.out.println(shortPi);
System.out.println(shortPi2);
//4번째 자리까지, 5번째부터 버림, 3.141
double flPi = Math.floor(pi * 1000) / 1000.0;
System.out.println(flPi);
//형변환(int)해도 된다.
//4번째 자리까지, 5번째에서 올림, 3.142
double cePi = Math.ceil(pi * 1000) / 1000.0;
System.out.println(cePi);
}
}
3
3.142
3.142
3.141
3.142
1000.0
을 한 이유?(int)3142 / (double)1000.0
-> (double)3142.0 / (double)1000.0
-> (double)3.142
-> 형변환을 해서 타입을 맞춰주기 위해 -> 그래야 내가 원하는 실수가 나옴
-> 두 항 중 하나만 형변환해도 된다.
1000.0
이 아닌 1000
으로 나눈다면??(int)3142 / (int)1000
-> (int)3
-> 이기 때문에 안된다!!