다음을 통해 공유


C에서 정수 및 부동 소수점 숫자를 사용하는 방법#

이 자습서에서는 C#의 숫자 형식에 대해 설명합니다. 소량의 코드를 작성한 다음, 해당 코드를 컴파일하고 실행합니다. 이 자습서에는 C#에서 숫자 및 수학 연산을 탐색하는 일련의 단원이 포함되어 있습니다. 이러한 단원에서는 C# 언어의 기본 사항을 설명합니다.

코드 조각 블록에 "실행" 단추가 포함된 경우 해당 단추는 대화형 창을 열거나 대화형 창의 기존 코드를 바꿉니다. 코드 조각에 "실행" 단추가 포함되지 않은 경우 코드를 복사하여 현재 대화형 창에 추가할 수 있습니다.

정수 수학 탐색

대화형 창에서 다음 코드를 실행합니다.

int a = 18;
int b = 6;
int c = a + b;
Console.WriteLine(c);

앞의 코드는 정수가 있는 기본 수학 연산을 보여 줍니다. int 형식은 양의 정수 또는 음수인 정수나타냅니다. 더하기 위해 + 기호를 사용합니다. 정수에 대한 기타 일반적인 수학 연산은 다음과 같습니다.

  • 빼기를 위한 -
  • 곱셈을 위한 *
  • 나누기 /

먼저 이러한 다양한 작업을 탐색합니다. 이러한 각 작업을 시도하도록 세 번째 줄을 수정합니다. 예를 들어 빼기를 시도하려면 다음 줄과 같이 +- 바꿉다.

int c = a - b;

사용해 보세요. "실행" 단추를 선택합니다. 그런 다음 곱하기, * 및 나누기, /시도합니다. 원하는 경우 동일한 줄에 여러 수학 연산을 작성하여 실험할 수도 있습니다.

C# 또는 프로그래밍 언어를 탐색할 때 코드를 작성할 때 실수를 합니다. 컴파일러 해당 오류를 찾아 보고합니다. 출력에 오류 메시지가 포함된 경우 예제 코드와 대화형 창의 코드를 자세히 확인하여 해결 방법을 확인합니다. 이 연습은 C# 코드의 구조를 학습하는 데 도움이 됩니다.

작업 순서 살펴보기

C# 언어는 수학에서 배운 규칙과 일치하는 규칙을 사용하여 다양한 수학 연산의 우선 순위를 정의합니다. 곱하기와 나누기는 더하기와 빼기보다 우선합니다. 대화형 창에서 다음 코드를 실행하여 탐색합니다.

int a = 5;
int b = 4;
int c = 2;
int d = a + b * c;
Console.WriteLine(d);

출력은 덧셈보다 곱셈이 먼저 수행됨을 보여 줍니다.

먼저 수행하려는 작업 주위에 괄호를 추가하여 다른 연산 순서를 적용할 수 있습니다. 대화형 창에 다음 줄을 추가합니다.

d = (a + b) * c;
Console.WriteLine(d);

다양한 작업을 결합하여 자세히 살펴봅니다. 앞의 코드에서 네 번째 줄을 다음과 같이 바꿉다.

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);

정수 정밀도 및 제한 살펴보기

마지막 샘플에서는 정수 나누기에서 결과가 잘리는 것으로 나타났습니다. 나머지 연산자인 % 문자를 사용하여 나머지 가져올 수 있습니다.

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 max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine($"The range of integers is {min} to {max}");

계산 결과가 해당 한계를 초과하는 값을 생성하는 경우, 언더플로 상태 또는 오버플로 상태가 발생합니다. 대답은 한계에서 다른 한계로 넘어가는 것처럼 보입니다. 예를 보려면 대화형 창에 다음 두 줄을 추가합니다.

int what = max + 3;
Console.WriteLine($"An example of overflow: {what}");

답변은 최소(음수) 정수에 매우 가깝습니다. min + 2와 동일합니다. 정수에 허용되는 값을 넘어서 추가 작업이 오버플로되었습니다. 오버플로우로 인해 가능한 가장 큰 정수 값에서 가장 작은 값으로 반대로 돌아가기 때문에 결과는 큰 음수입니다.

int 형식이 요구 사항을 충족하지 않을 때 사용할 수 있는 제한 및 정밀도가 다른 다른 숫자 형식이 있습니다. 다음으로 이러한 유형의 숫자를 살펴보겠습니다.

double 형식으로 작업

double 숫자 형식은 배정밀도 부동 소수점 숫자를 나타냅니다. 이러한 용어는 새로운 용어일 수 있습니다. 부동 소수점 숫자는 크기가 크거나 작을 수 있는 비통합 숫자를 나타내는 데 유용합니다. 배정밀도 값을 저장하는 데 사용되는 이진 자릿수를 설명하는 상대 용어입니다. 배정밀도 숫자는 단정밀도두 배의 이진 자릿수를 가집니다. 최신 컴퓨터에서는 단정밀도 숫자보다 배정밀도를 사용하는 것이 더 일반적입니다. 단정밀도 숫자는 float 키워드를 사용하여 선언됩니다. 살펴보겠습니다. 다음 코드를 실행하고 결과를 확인합니다.

double a = 5;
double b = 4;
double c = 2;
double d = (a + b) / c;
Console.WriteLine(d);

답변에는 몫의 소수 부분이 포함됩니다. double을 사용하여 약간 더 복잡한 식을 사용해 보세요. 다음 값을 사용하거나 다른 숫자를 대체할 수 있습니다.

double a = 19;
double b = 23;
double c = 8;
double d = (a + b) / c;
Console.WriteLine(d);

이중 값의 범위가 정수 값보다 큽다. 대화형 창에서 다음 코드를 사용해 보세요.

double max = double.MaxValue;
double min = double.MinValue;
Console.WriteLine($"The range of double is {min} to {max}");

이러한 값은 과학적 표기법으로 인쇄됩니다. E 앞의 숫자는 중요합니다. E 뒤의 숫자는 지수(10의 힘)입니다.

수학의 10진수와 마찬가지로 C#의 doubles에는 반올림 오류가 있을 수 있습니다. 다음 코드를 사용해 보세요.

double third = 1.0 / 3.0;
Console.WriteLine(third);

0.33/10이며 1/3와 정확히 같지 않다는 것을 알고 있습니다. 마찬가지로 0.3333/100이다. 이 값은 1/3더 가깝지만 정확한 값은 아닙니다. 추가하는 소수 자릿수에 관계없이 반올림 오류는 그대로 유지됩니다.

챌린지

double 형식을 사용하여 큰 숫자, 작은 숫자, 곱하기 및 나누기를 사용하여 다른 계산을 시도합니다. 더 복잡한 계산을 시도합니다.

10진수 형식 사용

학습해야 할 다른 한 가지 유형은 decimal 형식입니다. decimal 형식은 범위는 작지만 double보다 정밀도가 더 높습니다. 다음을 살펴보겠습니다.

decimal min = decimal.MinValue;
decimal max = decimal.MaxValue;
Console.WriteLine($"The range of the decimal type is {min} to {max}");

범위가 double 형식보다 작은지 확인합니다. 소수점 형식보다 더 높은 정밀도를 다음 코드로 확인할 수 있습니다.

double a = 1.0;
double b = 3.0;
Console.WriteLine(a / b);

decimal c = 1.0M;
decimal d = 3.0M;
Console.WriteLine(c / d);

소수점 형식을 사용하는 수학은 소수점 오른쪽에 더 많은 숫자를 가짐을 확인합니다.

숫자의 M 접미사는 상수가 decimal 형식을 사용해야 함을 나타내는 방법입니다. 그렇지 않으면 컴파일러는 double 형식을 가정합니다.

메모

M 문자는 double 키워드와 decimal 키워드 간에 가장 시각적으로 구별되는 문자로 선택되었습니다.

챌린지

반지름이 2.50cm인 원의 영역을 계산하는 코드를 작성합니다. 원의 영역은 PI를 곱한 반경 제곱입니다. 한 가지 힌트: .NET에는 해당 값에 사용할 수 있는 PI Math.PI 상수가 포함되어 있습니다. System.Math 네임스페이스에 선언된 모든 상수와 마찬가지로 Math.PIdouble 값입니다. 이러한 이유로 이 챌린지에 decimal 값 대신 double 사용해야 합니다.

19에서 20 사이의 답변을 받아야합니다.

시도하면 세부 정보 창을 열어 어떻게 했는지 확인합니다.

:::code language="csharp" interactive="try-dotnet-method" source="./snippets/NumbersInCsharp/Program.cs" id="Challenge":::

원하는 경우 다른 수식을 사용해 보세요.

"C#의 숫자" 대화형 자습서를 완료했습니다. 분기 및 루프 링크를 선택하여 다음 대화형 자습서를 시작하거나 .NET 사이트 방문하여 .NET SDK를 다운로드하고, 머신에 프로젝트를 만들고, 코딩을 계속할 수 있습니다. "다음 단계" 섹션에서는 이러한 자습서로 돌아갑니다.

다음 문서에서 C#의 숫자에 대해 자세히 알아볼 수 있습니다.