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/

반응형

+ Recent posts