C#

C# 실수를 정수로 형변환

YL 2020. 7. 7. 18:53
반응형

double int 형변환 혹은 decimal int 형변환

형변환은 몇가지 방법이 존재하는데
1.암시적 형변환
하위 자료형 -> 상위 자료형으로 형변환
정수 -> 실수 형변환 가능 (int -> double)
실수 -> 정수 형변환 불가 (double -> int)
double d = 1; (가능)
int i = 0.6; (불가 - 형식 불일치 오류 발생)

2.명시적 형변환 (캐스팅)
직접 자료형을 명시하여 변환
단 double 값이 int.MaxValue 보다 클 경우 오류 발생
소수점 이하 자리수에 대해 버림 처리
int i = (int)0.6; // 결과: 0

3.도우미 클래스 형변환
System.Convert 클래스, 기본 제공 숫자형식의 Parse 메서드 등.
Parse 메서드: string을 변환하는 클래스
int 형식의 문자열을 int로 변환해주므로 실수는 변환 불가
Convert: 소수점 이하 반올림 처리
int i = int.Parse(“0.6”); // 오류
int i = int.Parse(“1”); // 결과: 1
int i = Convert.ToInt32(0.6); // 결과: 1
int i = Convert.ToInt32(0.5); // 결과: 0


결론
실수를 정수로 변환할 때 소수점 이하를 반올림하여 손실 최소화하는 방법
1. Round 메서드로 반올림 > int 형변환
(int)Math.Round(0.6, 0);
2. Convert 메서드 사용
Convert.ToInt32(0.6);


반응형

'C#' 카테고리의 다른 글

IDX12729: Unable to decode the header '[PII is hidden]' 해결방법  (0) 2021.12.22
C# List<T> Sort 무명메소드  (0) 2021.07.21
환경변수 확인 방법 (윈10 기준)  (0) 2020.07.04
AnkhSVN2019  (0) 2020.06.05
vc_runtimeMinimum 설치 안됨  (1) 2020.06.04