더북(TheBook)

decimal 키워드(System.Decimal)

decimal 키워드는 실수 형식의 데이터를 다룰 때 사용하는데, 이진수 체계로 처리되는 double이나 float와 달리 십진수로 표현합니다. decimal은 128비트의 숫자를 표현할 수 있습니다. floatdouble 데이터 형식에 비해서 가장 정밀도가 높은 정확한 자료를 담을 수 있습니다. 값 자체의 범위는 floatdouble 데이터 형식에 비해서 작지만, 소수점 28자리까지는 정확도(유효 자릿수)가 높기에 세금과 환율 계산 등 주로 금융 프로그램을 만들 때 사용합니다.

다음 샘플 코드를 보면 실수는 부동소수점 수를 이진수로 표현하기에 소수점 처리에 오류가 발생합니다. 이때는 decimal 형식을 사용하여 오차가 발생하지 않도록 해야 합니다.

> (2.0 - 1.1)
0.89999999999999991
> Convert.ToDecimal(2.0 - 1.1)
0.9

다음 샘플 코드처럼 decimal.TryParse() 메서드를 사용하면 숫자 형식의 문자열을 decimal 형식으로 변환하여 decimal 변수에 담을 수 있습니다. 또 decimal 키워드로 선언된 변수에 숫자 리터럴을 입력할 때는 반드시 대문자 M 또는 소문자 m 접미사를 사용해야 합니다. TryParse() 메서드의 두 번째에는 out 키워드를 사용했는데요. 이러한 내용은 뒤에서 자세히 다루니 지금은 샘플 코드만 살펴보세요.

> decimal d = 0M;
> decimal.TryParse("12.34", out d);
> d
12.34
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.