이것 역시 계산기를 만들어보다가 형변환 일이 있어서 구글링을 했는데, 아예 형변환에 대해 정리해두면 좋을 것 같아 작성해보았다.
목차
- 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를 출력한걸로 보아 성공적으로 형변환되었음을 확인하였다.