형변환 이란 데이터 형식을 바꾼다는 뜻
예를 들면 int형 데이터를 double형으로 바꾸는 등
방법은
float a;
int b = 10;
a = (float)b;
a의 데이터 타입은 float 이라서 원레라면 int형 변수인 b 값을 a변수에 넣을 수 없지만
b 앞에 (float)라고 형변환을 해줌으로 a 변수에 b 값을 넣을 수 있다.
주의할 점 데이터의 크기가 맞지 않을시 오버플로우가 발생할 수 있음
byte 에 int 값을 넣을 수는 없음
형변환시 데이터 크기를 확인할 것
실수 형변환
실수 자료형은 float, double, decimal 3가지가 있음
실수는 정수에서 일어나는 오버플로우와, 언더플로우가 일어나지 않음
대신 정밀성이 떨어짐.
float나 double은 소수를 2진수로 메모리에 저장이 되는데
저장된 값을 다른 형식으로 변환하려면 10진수로 변환후 2진수로 다시 변환해서 저장해야한다.
이 때 이진수로 표현하는 소수는 완전하지 않아서 변환 과정에서 데이터 손실이 발생해 정밀성이 떨어진다.
즉, 변환 과정에서 데이터 손실이 발생하므로 정밀성이 떨어짐.
float f = 3.141519f;
double d = (double)f;
출력시 f = 3.141519, d = 3.14151906967163
값이 틀려짐. 정밀성이 떨어진다는 의미란 이런 것
그리고 실수 형식을 정수 형식으로 변환하게되면 소수 값을 모두 버리게 됨
0.9 가 0이 됨
문자열 형변환
C++에선 string이 자료형이 아닌 클래스
C#은 자료형이지만 마찬가지로 형변환이 안됌
C#/C++ 둘다 함수를 사용해서 변경이 가능(C#은 메소드)
사용하는 메소드는 2가지
숫자를 문자로 바꿔주는 ToString()
문자를 숫자로 바꿔주는 Parse()
'C#' 카테고리의 다른 글
C# 문자열 보간, 서식, 분할, 변형, 찾기 (0) | 2022.04.27 |
---|---|
C# Object 자료형, 박싱과 언박싱 (0) | 2022.04.27 |
C# 상수와 열거형 (0) | 2022.04.27 |
C# Nullable, Var (0) | 2022.04.26 |
C# 개발 환경 (0) | 2022.04.26 |