-
형식 변환(Type Conversion)-정수와 실수 간의 형식 변환코딩Coding/C#_연습 2020. 6. 4. 15:15728x90
형식 변환(Type Conversion)
정수와 실수 간의 형식 변환
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int a = 500; float b = a; // 암시적 변환으로 별도의 구문이 필요하지 않음 Console.WriteLine("a={0}, b={1}", a, b); double c = 123.45; int d = (int)c; Console.WriteLine("c={0}, d={1}", c, d); } } }
결과
우선 10행과 같이 정수를 실수로 변환하는 것은 데이터 손실이 없으므로 암시적 변환(Implicit conversions)이 이루어 집니다. 여기서 암시적 변환이란, 일반적으로 형식 변환이 안전하고 데이터 손실의 우려가 없을 경우 컴파일러에 의해 수행되는 변환을 말합니다. 암시적 변환과 관련된 표는 이곳에서 확인하실 수 있습니다.
https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/builtin-types/numeric-conversions
반대로, 15행은 실수를 정수로 바꾸는 과정에서 소수점 이하는 모두 버려지면서 데이터 손실이 일어나게 됩니다. 손실 여부와는 상관없이 형식 변환을 하고 싶은 경우에는, 명시적 변환(Explicit conversions)을 사용하여 실수를 정수로 바꾸어야 합니다. 여기서 명시적 변환이란, 프로그래머가 컴파일러에게 "이 형식으로 변환해줘!"라고 분명하게 의도를 내비치는 것입니다. 이 경우에는 결과에서 확인할 수 있듯이 데이터 손실이 일어난 것을 확인할 수 있습니다.
출처: https://blog.hexabrain.net/128[끝나지 않는 프로그래밍 일기]
반응형'코딩Coding > C#_연습' 카테고리의 다른 글
Install python, vscode in windows10 (0) 2020.06.17 C#연습]증감(++)연산자count연습<전위,후위 차이>(Increment operator) (0) 2020.06.12 증감 연산자(++, --)(increment and decrement operator) (0) 2020.06.10 형식 변환(Type Conversion),ToString & Parse Method (0) 2020.06.04 출력 너비 지정 (0) 2020.06.04 사용자 지정 수치 서식 문자열(Custom Numeric Format Strings) (0) 2020.06.04 수치 서식 문자열(Standard numeric format strings) (0) 2020.06.02 객체 자료형(object) (0) 2020.06.02