C#에서는 데이터 형식 간의 변환 시 주의해야 할 몇 가지 사항이 있습니다. 예를 들어, 다음과 같은 코드를 살펴보겠습니다.
int value = (int)1.5m; // 1
int value = (int)1.999m; // 1
이 코드에서는 1.5를 int로 캐스팅하고 있습니다. 이 경우, float의 값이 잘리므로 결과는 소수점 뒤의 값이 완전히 무시되어 1이 됩니다. 1.999m으로 변경해도 캐스팅 결과가 동일하게 1으로 유지됩니다.
하지만, 때로는 정확한 반올림이 필요할 수 있습니다. 이때, Convert.ToInt32()를 사용하여 변환하면 float 값이 2로 제대로 반올림됩니다.
int roundedValue = Convert.ToInt32(1.5m); // 2
반면에, 값을 1.499m으로 변경하면 1로 반내림됩니다.
int flooredValue = Convert.ToInt32(1.499m); // 1
이처럼 데이터 형식 간의 변환에서는 소수점 이하 값의 처리에 주의를 기울여야 합니다. 필요에 따라 반올림이나 반내림을 명시적으로 수행하여 원하는 결과를 얻을 수 있습니다.
Windows 서비스 만들기: .NET 8 쉽고 빠르게 구현 (0) | 2024.10.04 |
---|---|
[C#] as와 is 연산자를 활용한 안전한 형 변환 (0) | 2023.09.21 |
[C#] 제네릭 형식: 코드의 재사용성과 안정성 확보 (0) | 2023.09.20 |
[C#] ?? 연산자 - null 병합 연산자의 활용 (0) | 2023.09.19 |
[Git] Zip 파일 생성 및 편집하기 (0) | 2023.01.25 |
댓글 영역