이것 역시 계산기를 만들어보다가 형변환 일이 있어서 구글링을 했는데, 아예 형변환에 대해 정리해두면 좋을 것 같아 작성해보았다.
목차
- To integer
- Double to integer
- String to integer
- Char to integer
- To double
- Integer to double
- To char
- Integer to char
- String to char
- String to char Array
- To String
- Integer to String
- Double to String
- Char to String
➡️ Integer
그냥 단순히 (int)b
로 명시적 형변환을 하면, 값이 손실된다. 따라서 Math
클래스 내부함수(ceil()
: 반올림)를 이용하여 형변환 해야한다.
String을 Integer로 바꾸는 형변환은 두 가지를 사용했다. Integer.parseInt(str)
와 Integer.valueOf(str).intValue()
.
그런데 위 두함수를 출력함수에 직접 넣어서 출력하면 int형으로 형변환되지 않는것으로 보인다. Integer.parseInt(c)+10
이 100
으로 출력되어야 하지만, 9010
으로 출력됨을 알 수 있다.
그래서 int
형 변수를 만들어서 형변환 함수 결과를 저장하고 이를 출력하면 연산에 사용할 수 있었다.
char
형을 int
로 형변환하면 char
형에 담겨있는 데이터를 ASCII 코드테이블에 따라서 decimal(십진법)로 변환해준다.
➡️ double
이 경우엔 단순히 변수 앞에 (double)
을 붙여서 강제 명시적 형변환을 해서 바꿀 수 있다. 그러나 원래 데이터 타입만 바뀌었을 뿐, 원래 데이터와 똑같은 값을 가지는걸 알 수 있다.
➡️ char
int
형을 char
형으로 변환하면, int
형 값 ASCII 코드 테이블에 따라 decimal에 대입하여 symbol을 출력한다.
String
을 char
로 변환할 때엔 문자열을 인덱스마다 나눠서 char
형으로 저장한다. c.charAt(index)
를 이용하면 index에 따라 문자열을 문자형으로 바꿔서 가져올 수 있다.
또 문자열 전체를 문자형(char
) 형태로 변환하고자 한다면 문자형 배열을 만들어서 저장하는 방법이다. Arrays.toString(char.toCharArray())
➡️ String
문자열(String
)로 형변환할 때엔 String.valueOf()
를 사용한다. 잘 바뀌었는지 확인하기 위해 문자형(char
) 데이터와 문자열(String
) 데이터와 비교하여 boolean
값을 출력하는 테스트를 해보았다. 문자열로 형변환한 데이터와 "d"
와 비교했을때 true
, 'd'
와 비교했을 때 false
를 출력한걸로 보아 성공적으로 형변환되었음을 확인하였다.