대화형 창에서 다음 코드를 실행해보겠습니다.
int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);
정수를 사용하는 기본 수학 연산 중 하나를 살펴보았습니다, int 형식은 정수(양의 정수 또는 음의 정수)를 나타냅니다. 더하기의 경우 + 기호를 사용합니다. 정수에 대해 다른 일반적 수학 연산은 다음과 같습니다.
- 빼기의 경우 -
- 곱하기의 경우 *
- 나누기의 경우 /
1.연산 순서 알아보기
C# 언어는 수학에서 배운 규칙과 일치하는 규칙으로 여러 가지 수학 연산의 우선 순위를 정의합니다. 곱하기와 나누기는 더하기와 빼기보다 우선 순위가 높습니다. 대화형 창에서 다음 코드를 실행해보겠습니다.
int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);
출력에서는 곱하기가 수행된 후 더하기가 수행되었음을 보여 줍니다. 먼저 수행하려는 연산 주위에 괄호를 추가해 여러 연산 순서를 적용할 수 있습니다.
int a = 5;
int b = 4;
int c = 2;
int d = (a + b) * c;
Console.WriteLine(d);
여러 다른 연산을 결합해 자세히 살펴봅시다. 위에서 네 번째 줄을 다음과 같이 바꿉니다.
int d = (a + b) - 6 * c + (12 * 4) / 3 + 12;
Console.WriteLine(d);
정수에 대해 흥미로운 동작을 이미 알고 있을 수 있습니다. 정수 나누기는 결과에 소수 또는 소수 부분이 포함될 것으로 예상되는 경우에도 항상 정수 결과를 생성합니다.
이러한 동작을 본 적이 없다면 다음 코드를 시도해봅시다.
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
Console.WriteLine(d);
2. 정수 전체 자릿수 및 한도 살펴보기
마지막 샘플에서는 정수 나누기가 결과를 자르는 것을 보여 줍니다. 나머지 연산자( % 문자) 를 사용해 나머지를 얻을 수 있습니다.
int a = 7;
int b = 4;
int c = 3;
int d = (a + b) / c;
int e = (a + b) % c;
Console.WriteLine($"quotient: {d}");
Console.WriteLine($"remainder: {e}");
C# 정수 형식은 한 가지 다른 면에서 수학의 정수와 다릅니다. 즉 int 형식에는 최소 한도와 최대 한도가 있습니다.
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");
계산이 해당 한도를 초과하는 값을 생성하는 경우 언더플로 또는 오버플로 조건이 발생합니다. 답은 한 한도에서 다른 한도를 래핑하는 것으로 나타납니다.
int max = int.MaxValue;
int what = max + 3;
Console.Write($"An example of overflow: {what}");
답은 최소 (음의) 정수와 아주 가깝습니다 min + 2와 같습니다. 더하기 연산은 정수에 대해 허용된 값을 오버플로했습니다. 오버플로가 가능한 가장 큰 정수에서 가장 작은 정수로 래핑하기 때문에 답은 아주 큰 음수입니다.
int 형식이 요구 사항을 충족하지 않을 때 사용하는 여러 한도와 전체 자릿수가 있는 다른 숫자 형식이 있습니다.
2. double 형식 작업
double 숫자 형식은 배정밑도 부동 소수점 수를 나타냅니다. 이러한 용어는 생소할 수 있습니다. 부동 소수점 수는 아주 크거나 작은 정수가 아닌 수를 나타낼때 유용합니다. 배정밀도는 값을 저장하는 데 사용되는 이진 자릿수를 설명하는 상대 용어로 값을 저장하는 데 사용되는 이진 자릿수를 설명하는 상대용어입니다. 배정밀도의 숫자의 이진 자릿수는 단정밀도의 두 배입니다.
최신 컴퓨터에서는 단정밀도 숫자보다 배정밀도를 더 많이 사용합니다. 단정밀도 숫자는 float 키워드를 사용하여 선언합니다.
double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);
답에 몫의 소수 부분이 포함되 있습니다. double을 사용해 약간 더 복잡한 식을 사용해 봅시다.
double a = 18;
double b = 25;
double c = 6;
double d = (a + b) / c;
Console.WriteLine(d);
double 값의 범위는 정수 값보다 훨씬 큽니다. 대화형 창에서 다음 코드를 실행해봅니다.
double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of duble is {min} or {max}");
이러한 값은 과학적 표기법으로 인쇄합니다. E의 왼쪽에 있는 숫자는 유효 숫자로 오른쪽의 숫자는 지수이며 10의 배수입니다. 수학의 10진수 숫자와 마찬가지로, C# 에서 double 에는 반올림 오류가 발생할 수 있습니다.
double third = 1.0 / 3.0;
Console.WriteLine(third);
0.3은 3/10이며 1/3 과 정확하게 동일치 않고, 마찬가지로 0.33은 33/100이며 1/3에 더 가깝지만 정확치 않습니다.
10진 형식으로 작업
C#의 기본적인 숫자 형식인 정수 형식과 double 형식을 살펴봤습니다. 이번엔 decimal 형식으로 decimal 형식은 범위는 작지만 double보다 전체 자릿수가 큽니다.
decimal min = decimal.MaxValue;
decimal max = decimal.MinValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");
범위가 double 형식보다 작습니다. 다음 코드를 사용해 소수점이 있는 더 큰 전체 자릿수를 확인합니다.
double a = 1.0;
double b = 2.0;
Console.WriteLine(a / b);
decimal c = 1.0M;
decimal d = 2.0M;
Console.WriteLine(c / d);
소수점 형식을 사용하는 수학에는 소수점 오른쪽에 더 많은 숫자가 있습니다. 숫자의 M 접미사는 상수가 decimal 형식을 사용해야 함을 나타내는 방법입니다. 형식을 지정하지 않으면 컴파일러는 double 형식으로 간주합니다.
숫자 작업 - 입문용 대화형 자습서
숫자 형식에 대한 이 자습서에서는 브라우저를 사용하여 C#을 대화형으로 학습할 수 있습니다. C# 코드를 작성하고 브라우저에서 직접 코드를 컴파일하고 실행한 결과를 확인할 수 있습니다.
learn.microsoft.com
'게임 모딩 > C#' 카테고리의 다른 글
[C#] 6. C# 프로그램의 일반적인 구조체 (0) | 2025.01.27 |
---|---|
[C#] 5.목록 형식을 사용한 데이터 컬렉션 관리 (0) | 2025.01.26 |
[C#] 4.분기 및 루프 문이 포함된 조건문 (0) | 2025.01.26 |
[C#] 2.C# 문자열 작업 (0) | 2025.01.25 |
[C#] 1.C# 언어 둘러보기 (1) | 2025.01.25 |