C#의 데이터 유형: Double, 정수, 부동 소수점, 문자

⚡ 스마트 요약

C#의 데이터 형식은 변수가 저장할 수 있는 값의 종류를 정의하며, 정수, 부동 소수점 숫자, 부울 값, 문자열 값 등을 포함합니다. 또한 데이터 형식은 프로그램 실행 중에 각 변수가 예약하는 메모리 양을 결정합니다.

  • 🔢 정수형: Int32 키워드(int)는 10, 20, 30과 같은 정수를 고정된 메모리 범위 내에 저장합니다.
  • 🔣 부동 소수점 유형: double형과 float형은 소수 값을 저장할 수 있지만, decimal형은 금융 계산에 더 높은 정밀도를 제공합니다.
  • ☑️ 부울 유형: Boolean 키워드는 참 또는 거짓만 저장하며 조건 논리를 구현하는 데 사용됩니다.
  • 🔤 텍스트 유형: char는 단일 문자를 저장하고, string은 문자열을 텍스트로 저장합니다.
  • 🧩 값과 참조: 값 형식은 데이터를 직접 저장하는 반면, 문자열과 같은 참조 형식은 메모리 주소를 저장합니다.
  • 🤖 AI 지원: GitHub Copilot과 ML.NET은 C# 타입 처리에 코드 제안 및 머신 러닝 기능을 제공합니다.

C#의 데이터 유형

C#의 데이터 유형은 무엇입니까?

C# 언어에는 기본 데이터 유형 세트가 함께 제공됩니다. 이러한 데이터 유형은 애플리케이션 내에서 사용되는 값을 작성하는 데 사용됩니다. C#에서 사용할 수 있는 기본 데이터 형식을 살펴보겠습니다. 각 예에서 Program.cs 파일의 주요 기능만 수정하겠습니다.

1) 정수

정수 데이터 유형은 숫자와 함께 작업하는 데 사용됩니다. 이 경우 숫자는 10, 20 또는 30과 같은 정수입니다. C#에서 데이터 유형은 다음과 같이 표시됩니다. Int32 키워드. 다음은 이 데이터 유형을 사용할 수 있는 방법의 예입니다. 이 예에서는 num이라는 Int32 변수를 정의합니다. 그런 다음 변수에 정수 값을 할당하고 그에 따라 표시합니다.

C#의 정수 데이터 유형

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code 설명:-

  1. Int32 데이터 유형은 num이라는 정수 변수를 선언하기 위해 지정됩니다. 그런 다음 변수에 값 30이 할당됩니다.
  2. 마지막으로 console.write 함수를 사용하여 콘솔에 숫자를 표시합니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 다음과 같은 출력이 표시됩니다.

출력:

C#의 정수 데이터 유형

출력에서 num이라는 Integer 변수가 콘솔에 표시된 것을 명확하게 볼 수 있습니다.

2) Double

double 데이터 유형은 소수점 작업 시 사용됩니다. 이 경우 숫자는 10.11, 20.22 또는 30.33과 같은 정수입니다. C#에서 데이터 유형은 키워드 "Double“. 다음은 이 데이터 유형의 예입니다.

우리의 예에서 우리는 num이라는 double 변수를 정의할 것입니다. 그런 다음 다음을 할당합니다. Double 변수에 값을 추가한 다음 그에 따라 표시합니다.

Double C#의 데이터 유형

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code 설명:-

  1. double 데이터 유형은 double 유형을 선언하기 위해 지정됩니다. 변수 번호라고 합니다. 그런 다음 변수에 30.33 값이 할당됩니다.
  2. 마지막으로 console.write 함수를 사용하여 콘솔에 숫자를 표시합니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 다음과 같은 출력이 표시됩니다.

출력:

Double C#의 데이터 유형

출력에서 num이라는 double 변수가 콘솔에 표시된 것을 명확하게 볼 수 있습니다.

3) 부울

부울 데이터 유형은 부울 값으로 작업하는 데 사용됩니다. 진실과 거짓. C#에서 데이터 유형은 부울 키워드로 표시됩니다. 다음은 이 데이터 유형을 사용할 수 있는 예입니다.

이 예에서는 'status'라는 부울 변수를 정의하겠습니다. 그런 다음 변수에 부울 값을 할당하고 그에 따라 표시합니다.

C#의 부울 데이터 유형

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code 설명:-

  1. boolean 데이터 유형은 'status'라는 불리언 변수를 선언하기 위해 지정됩니다. 그런 다음 변수에 true/false 값이 할당됩니다.
  2. 마지막으로 console.write 함수는 콘솔에 부울 값을 표시하는 데 사용됩니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 출력이 표시됩니다.

출력:

C#의 부울 데이터 유형

출력에서 true와 같은 Boolean 변수가 콘솔에 표시되었음을 명확하게 볼 수 있습니다.

4) 문자열

문자열 데이터 유형은 문자열 값을 사용하는 데 사용됩니다. C#에서 데이터 유형은 키워드 'String'으로 표시됩니다. 다음은 이 데이터 유형의 예입니다.

이 예에서는 'message'라는 문자열 변수를 정의하겠습니다. 그런 다음 변수에 문자열 값을 할당하고 그에 따라 표시합니다.

C#의 문자열 데이터 형식

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code 설명:-

  1. String 데이터 유형은 message라는 문자열 변수를 선언하기 위해 지정됩니다. 그런 다음 변수에 "Hello" 값이 할당됩니다.
  2. 마지막으로 console.write 함수는 문자열 값을 콘솔에 표시하는 데 사용됩니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 출력이 표시됩니다.

출력:

C#의 문자열 데이터 형식

출력에서 콘솔에 message라는 문자열 변수가 표시된 것을 명확하게 볼 수 있습니다.

C# 데이터 형식의 전체 목록

위의 네 가지 예시는 가장 일반적인 데이터 형식을 다루지만, C#은 다양한 내장 값 데이터 형식을 제공합니다. 각 형식은 고정된 양의 메모리를 할당하고 특정 범위의 값을 허용하므로, 데이터를 안전하게 저장할 수 있는 가장 작은 형식을 선택하면 프로그램 효율성을 유지할 수 있습니다.

데이터 형식 중량 범위 / Descript이온
바이트 1 바이트 0 ~ 255
짧은 2 바이트 32,768까지 32,767
정수(Int32) 4 바이트 2,147,483,648까지 2,147,483,647
8 바이트 매우 큰 정수 (±9.2경)
뜨다 4 바이트 소수점 이하 약 6~7자리 정밀도
더블 8 바이트 소수점 이하 약 15~16자리 정밀도
소수 16 바이트 화폐 단위를 위한 고정밀 소수점(28~29자리)
이륜 전차 2 바이트 단일 유니코드 문자
불량배 1 바이트 참 또는 거짓

이러한 값 형식 외에도 문자열 형식은 가장 널리 사용되는 참조 형식으로, 임의 길이의 문자 시퀀스를 저장할 수 있습니다. 적절한 형식을 선택하면 오버플로 오류와 불필요한 메모리 사용을 방지할 수 있습니다.

C#에서 값 형식과 참조 형식 비교

모든 C# 데이터 형식은 값 형식과 참조 형식이라는 두 가지 그룹 중 하나에 속합니다. 이러한 구분은 C#에서 데이터를 저장하는 방식과 변수를 복사하거나 메서드에 전달할 때 변수의 동작 방식을 결정합니다.

  • 값 유형: 이러한 타입들은 실제 데이터를 직접 저장하며, 일반적으로 스택에 저장됩니다. int, double, bool, char 등이 있습니다. 열거 형`stdlib`, `stdlib`, `stdlib`은 값 형식입니다. 한 변수에 다른 변수를 할당하면 값이 복사되므로 두 변수는 서로 독립적으로 유지됩니다.
  • 참조 유형: 참조 변수는 힙에 있는 데이터를 가리키는 참조(메모리 주소)를 저장합니다. 문자열, 객체, 배열, 클래스 인스턴스는 참조 타입입니다. 참조 변수를 복사하면 주소만 복사되므로 두 변수는 동일한 객체를 공유합니다.

값 형식 변수는 항상 값을 가지고 있기 때문에 절대 null이 될 수 없습니다. 반면 초기화되지 않은 참조 형식 변수는 기본값이 null입니다. 이러한 차이점을 이해하면 데이터 변경 사항이 프로그램에서 어떻게 전달되는지 예측하는 데 도움이 됩니다.

C#에서의 타입 변환

C#에서는 종종 값을 한 데이터 형식에서 다른 데이터 형식으로 변환해야 합니다. 예를 들어 항상 텍스트인 사용자 입력을 숫자로 변환하는 경우가 있습니다. 이러한 과정을 형식 변환이라고 하며, 크게 세 가지 방식으로 이루어집니다.

  • 암시적 변환: 컴파일러는 데이터 손실 위험이 없는 경우(예: int를 double에 할당하는 경우) 자동으로 변환합니다. 특별한 구문은 필요하지 않습니다.
  • 명시적 형변환(캐스팅): 대상 데이터 유형을 괄호 안에 넣습니다. 예를 들어 (int)my와 같이 입력합니다.Double형변환은 데이터 손실을 초래할 수 있습니다. 예를 들어 double형을 int형으로 변환하면 소수 부분이 사라집니다. 따라서 이러한 위험을 감수해야 합니다.
  • 도우미 메서드: Convert 클래스(Convert.ToInt32)와 각 형식의 Parse 메서드(int.Parse)는 문자열을 숫자로 변환하고, ToString 메서드는 값을 다시 읽을 수 있는 텍스트로 변환합니다.

올바른 변환을 선택하면 데이터의 정확성이 유지되고, 할당문 양쪽의 데이터 형식이 일치하지 않을 때 발생하는 런타임 오류를 방지할 수 있습니다.

자주 묻는 질문

float, double, decimal은 모두 십진수를 저장하는 형식이지만 정밀도와 크기가 다릅니다. float는 약 7자리 숫자를 4바이트에 저장하고, double은 약 15자리 숫자를 8바이트에 저장하며, decimal은 고정밀 금융 값을 저장할 때 16바이트를 사용합니다.

실질적인 차이는 없습니다. int는 .NET의 System.Int32 형식에 대한 C#의 별칭이므로 int와 Int32는 컴파일 시 완전히 동일한 결과를 생성합니다. 대부분의 개발자는 간결성을 위해 int를 사용하지만, Int32를 사용하면 기본 프레임워크 형식을 명시적으로 지정할 수 있습니다.

문자열은 힙에 저장된 문자 데이터에 대한 참조를 저장하므로 참조 타입입니다. 하지만 값 타입처럼 동작하는 부분도 있는데, 문자열은 불변(immutable)이기 때문에 변경 사항이 발생할 때마다 기존 객체를 수정하는 대신 새로운 문자열 객체가 생성됩니다.

null 허용 타입은 int나 bool과 같은 값 타입에 null 값을 저장할 수 있도록 하며, null 값은 타입 뒤에 물음표(')를 붙여 int?와 같이 표현합니다. 이는 선택적 데이터나 데이터베이스 필드에서 누락된 값을 0이나 false와 명확하게 구분하여 표현해야 할 때 유용합니다.

char 타입은 유니코드 문자 하나를 저장하며, 'A'와 같이 작은따옴표를 사용합니다. string 타입은 0개 이상의 문자를 저장하며, 큰따옴표를 사용합니다. char는 값 타입이고, string은 참조 타입입니다.

`var`는 컴파일 시점에 변수의 타입을 추론하고, 추론된 타입은 인텔리센스 기능을 통해 확정됩니다. `dynamic`은 타입 검사를 런타임으로 미루므로, 타입 오류는 실행 중에만 발생합니다. 안전성을 위해서는 `var`를, 유연성이 요구되는 런타임 환경에서는 `dynamic`을 사용하세요.

예. GitHub Copilot은 Visual Studio 내에서 타입 선언, 변환 및 상용구 코드를 제안합니다. Visual Studio Code이 기능은 적합한 숫자 유형을 추천하거나 구문 분석 코드를 생성할 수 있지만, 제안 내용에 정밀도 또는 오버플로 문제가 누락될 수 있으므로 출력 결과를 검토해야 합니다.

예. ML.NET은 C# 데이터 형식을 모델 특징에 매핑하며, 학습 데이터에는 float 및 double과 같은 숫자 형식을 사용하고 텍스트에는 문자열 형식을 사용합니다. 강력한 형식의 데이터 클래스가 각 열을 설명하므로 머신 러닝 모델이 C# 애플리케이션에 자연스럽게 통합됩니다.

이 게시물을 요약하면 다음과 같습니다.