상세 컨텐츠

본문 제목

[C#] 캐스팅 잘림 및 변환 반올림/반내림

C#

by 코딩하는 박줄기 2024. 1. 7. 14:41

본문

728x90
반응형

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

 


이처럼 데이터 형식 간의 변환에서는 소수점 이하 값의 처리에 주의를 기울여야 합니다. 필요에 따라 반올림이나 반내림을 명시적으로 수행하여 원하는 결과를 얻을 수 있습니다.

참조

728x90
반응형

관련글 더보기

댓글 영역