Section 37.8: 명시적 숫자 (numeric) 변환
명시적 타입 변환 연산자를 활용하면 숫자 (numeric) 타입들간의 변환을 수행할 수 있으며, 이는 해당 타입들이 서로 확장 (extend) 이나 구현 (implement) 관계에 있지 않다 하더라도 무방하다.
double value = -1.1;
int number = (int) value;
여기서 유의할 점은, 만약 변환의 최종 대상이 되는 타입이 기존 타입에 비해 낮은 정확도 (precision) 를 가지고 있을 경우, 기존 값이 가지고 있던 정확도는 유실된다는 것이다. 예를 들어, double
타입인 -1.1
값을 위 예제와 같이 변환할 경우 최종 정수값은 -1
이 될 것이다.
또한, 숫자 타입 변환은 컴파일 시점의 타입에 의존적으로 이루어지므로, 객체로 박싱 (boxing) 된 경우에는 정상 동작하지 않는다.
object value = -1.1;
int number = (int) value; // InvalidCastException 을 발생시킨다
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
38.2: Nullable 타입 변수가 값을 가지고 있는지 확인하기 (0) | 2022.01.20 |
---|---|
38.1: Nullable 타입 변수 초기화하기 (0) | 2022.01.20 |
37.7: 묵시적 타입 변환 (Implicit Casting) (0) | 2022.01.13 |
37.6: 안전한 명시적 타입 변환 (as 연산자를 이용한) (0) | 2022.01.12 |
37.5: 명시적 타입 변환 (Explicit Casting) (0) | 2022.01.12 |