본문 바로가기
Program Language/C#

Part1. C# 첫발 내딛기(11. 실수 자료형)

by 토담이아빠 2023. 1. 6.

실수 자료형

 

이번 포스팅에서는 C#에서 실수를 표현할 때 사용하는 자료형들에 대해서 정리했습니다.


실수를 표현하는 float, double, decimal

 

c#에서 실수를 표현하는 자료형으로 float, double, decimal이 있습니다. 가장 큰 차이는 정밀도입니다. float은 유효 숫자가 7자리, double은 15 ~ 16자리, decimal은 28 ~ 29자리입니다. decimal이 훨씬 정밀한 숫자를 표현할 수 있으므로 금융 프로그램에 많이 쓰입니다.

 

정밀도는 저장공간과 계산속도에 영향을 줍니다. float은 4바이트, double은 8바이트인 반면 decimal은 16바이트나 차지합니다. 따라서 계산속도는 이들 중 제일 느립니다.

 

정밀도면에서는 decimal이 가장 크지만 표현할 수 있는 수의 범위는 float이나 double이 더 큽니다. 그래서 과학적인 계산에 더 적합합니다. 

 

c#에서 실수의 default 자료형은 double입니다. float이나 decimal을 사용할 때는 숫자 뒤에 접미사 f, m을 붙여야 합니다. double을 명시하려면 숫자 뒤에 접미사 d를 붙입니다.

 

다음은 float, double, decimal의 크기 및 범위를 출력하는 예제입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FloatDoubleDecimal
{
    internal class Program
    {
        static void Main(string[] args)
        {
            float flt = 1F / 3;
            double dbl = 1D / 3;
            decimal dcm = 1M / 3;
			
            //계산값 출력
            Console.WriteLine("float : {0}\ndouble : {1}\ndecimal : {2}", flt, dbl, dcm);
            
            //자료형 크기 출력
            Console.WriteLine("float : {0} bytes\ndouble : {1} bytes\ndecimal : {2} bytes"
                , sizeof(float), sizeof(double), sizeof(decimal));
            
            //자료형 범위 출력
            Console.WriteLine("float : {0}~{1}", float.MinValue, float.MaxValue);
            Console.WriteLine("double : {0}~{1}", double.MinValue, double.MaxValue);
            Console.WriteLine("decimal : {0}~{1}", decimal.MinValue, decimal.MaxValue);
        }
    }
}

결과


[Review]

"초보자를 위한 C# 200제(2판)"  저자 / 강병익

댓글