일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Class
- 프로그래머스
- API
- fatal: Not a valid object name: 'master'
- CSS
- class선택자
- 생활코딩
- 상위 N개 레코드
- 헌혈
- XHR
- id선택자
- jdoodle
- helloworld!
- HTML
- Java입문
- java
- 라즈베리파이
- initial commit
- Javascript
- 자바의정석
- AndroidDeveloper
- Math.
- Javapopup
- IOT
- variable
- Database
- string
- SQL문제풀이
- Javaswing
- compile
- Today
- Total
Sun의 정리정돈
[22/50]JAVA1-8.3. 데이터 타입의 변환(casting) 본문
Casting : 데이터 타입을 다른 데이터 타입으로 coverting 하는 것
double a = 1.1;
double b = 1;
System.out.println(b);
1.1은 double(실수)가 맞다. 그래서 double a = 1.1;을 담을 수 있다.
1 은 intger(정수)다. 하지만 일단 변수 double b에 담아보자. double b = 1; 쨘.
이렇게 해서 b를 출력하면 1.0 (double)이 나온다. double에서 intger로 가도 잃어버리는 값이 없기 때문에 잘 출력된다.
그렇다면 반대는?
// int c = 1.1;
int d = 1.1;
int e = 1.1;
1.1은 double(실수)다. 그러므로 intger에 담을 수 없다. 그래서 오류가 나기 때문에 주석처리를 하였다.
아래 변수 d와 e도 마찬가지다. d,e의 오류를 해결하기 위해서는 2가지 방법이 존재한다.
해결방법은 친절하게도 eclipse가 알려준다!
- Add cast to 'int' (int를 추가하거나)
- Change type of 'd' to 'double' (변수 d의 타입을 double로 바꿔라)
eclipse의 설명대로 행동해본다.
// int c = 1.1;
double d = 1.1;
int e = (int) 1.1;
System.out.println(e);
- 변수 d
- 1.1은 double(실수)다. 그러므로 double d에 담을 수 있다. 그래서 [int d = 1.1; -> double d = 1.1;] 로 변경한다.
올바른 데이터타입에 넣었기 때문에 잘 출력된다.
- 1.1은 double(실수)다. 그러므로 double d에 담을 수 있다. 그래서 [int d = 1.1; -> double d = 1.1;] 로 변경한다.
- 변수 e
- 1.1을 그냥 int로써 출력하고 싶을 때는 1.1 자체를 int 처리해버리는 수가 있다.
1.1; 값의 앞에 너는 (int)라고 이름표를 붙여버린다. [int e = 1.1; -> int e = (int) 1.1;]
하지만 이 방법은 데이터타입을 억지로 변경한 것이기 때문에 실수를 담을 수 없는 정수는 소수점의 값을 잃어버리고 정수의 값만 출력하게 된다.
- 1.1을 그냥 int로써 출력하고 싶을 때는 1.1 자체를 int 처리해버리는 수가 있다.
int를 자동으로 double로 변환하면 숫자에 손실이 오기때문에 꼭 명시적으로 (int)라고 지정해주어야 한다.
int e = (int) 1.1; <- 이 부분이 int 인 셈이다.
그렇다면 Number를 String으로 casting 할 수 있을까?
일단 모르니까 구글링을 하자. keyword는 "java int to string casting"이다.
String strI = Integer.toString(i);
위의 코드는 Stack overflow에서 누군가가 답변한 것을 긁어온 것이다. 이대로 입력해본다.
//1 to String
String f = Integer.toString(1);
System.out.println(f);
String로 지정된 변수 f는 = 정수.를 문자열로(1); 변환해주는 것이다. 그 결과는 1이 출력된다.
근데 결과값인 1의 데이터타입이 Number인지 String인지 어떻게 확인할 수 있을까?
.getClass() : 변수가 갖고 있는 값이 어떤 데이터 타입인지 알려준다.
System.out.println(f.getClass()); 를 입력해준다.
값은 1이 나오지만 .getclass를 통해 출력된 값이 사실은 class java.lang.String이 였다는 걸 확인할 수 있다.
'BackEnd > Java' 카테고리의 다른 글
[24/50]JAVA1-9.2. 프로그램 만들기-IoT 라이브러리 설치하기 (0) | 2022.10.21 |
---|---|
[23/50]JAVA1-9.1. 프로그래밍이란 무엇인가? (0) | 2022.10.21 |
[21/50]JAVA1-8.2. 변수의 효용 (0) | 2022.10.20 |
[20/50]JAVA1-8.1. 변수의 정의 (0) | 2022.10.19 |
[19/50]JAVA1-7. 작심삼일 공학 (0) | 2022.10.19 |