HOWTO · Csharp
C#에서 Float를 Int로 변환
C#에서 float를 int로 변환하는 데 사용할 수있는 4 가지 주요 메서드는 명시 적 형식 변환 메서드, Math.Ceiling() 함수, Math.Floor() 함수 및 Math.Round() 함수입니다.
이 페이지의 내용
C#에서 float를 int로 변환할 때는 소수 부분을 어떻게 처리할지에 따라 연산을 선택하세요. 직접 캐스팅하면 0을 향해 소수 부분을 버리고, Math.Ceiling()은 양의 무한대 방향으로 올림하며, Math.Floor()는 음의 무한대 방향으로 내림합니다. Math.Round()는 가장 가까운 정수를 선택합니다. 변환 결과는 모두 int이므로 소수부가 있는 값은 변환 과정에서 값이 달라질 수 있습니다.
C#에서 명시적 형식 캐스팅으로 Float를 Int로 변환
소수 부분을 버리려면 직접 캐스팅하는 것이 가장 간단합니다. 이 방식은 0을 향해 값을 절삭하므로, 양수와 음수 모두 음의 무한대가 아니라 0 쪽으로 이동합니다. 다음은 양수와 음수를 모두 변환하는 완전한 프로그램입니다.
using System;
class Program
{
static void Main()
{
float positive = 10.9f;
float negative = -10.9f;
int positiveResult = (int)positive;
int negativeResult = (int)negative;
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
캐스팅은 0을 향하는 방향을 유지하면서 소수 부분을 제거합니다. 예를 들어 10.9f는 10이 되고, -10.9f는 -10이 됩니다. 결과 변수의 형식은 int입니다. 이 예제는 코드로 제공되며, 작성 단계에서는 실행되지 않았습니다.
C#에서 Math.Ceiling() 함수로 Float를 Int로 변환
값을 양의 무한대 방향으로 올림하려면 Math.Ceiling()을 사용하세요. 이 메서드는 double을 반환하므로 호출한 뒤 결과를 int로 캐스팅해야 합니다. 음수는 양의 무한대 방향으로 올림하면 0에 가까워집니다.
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Ceiling(positive);
int negativeResult = (int)Math.Ceiling(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
여기서는 캐스팅 전에 Math.Ceiling()이 수직선에서 각 값을 위쪽으로 올림하고, 캐스팅을 통해 그 정숫값을 int로 저장합니다. 예를 들어 양수 입력은 11이 되고 음수 입력은 -10이 됩니다. 이 예제는 작성 단계에서 실행되지 않았습니다.
C#에서 Math.Floor() 함수로 Float를 Int로 변환
값을 음의 무한대 방향으로 내림하려면 Math.Floor()를 사용하세요. Math.Ceiling()과 마찬가지로 double을 반환하므로, 정수로 저장하려면 결과를 int로 캐스팅하세요.
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Floor(positive);
int negativeResult = (int)Math.Floor(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
음의 무한대 방향으로 내림하면 양수 입력은 10, 음수 입력은 -11이 됩니다. 음수 소수에서 이 결과는 직접 캐스팅과 다릅니다. 직접 캐스팅은 0을 향해 이동하기 때문입니다. 두 결과 변수의 형식은 int입니다. 이 예제는 작성 단계에서 실행되지 않았습니다.
C#에서 Math.Round() 함수로 Float를 Int로 변환
가장 가까운 정수로 반올림하려면 Math.Round()를 사용하세요. 이 메서드는 double을 반환하며, 결과를 int로 캐스팅할 수 있습니다. 다음 입력값은 정확히 중간에 있는 값이 아니므로, 이 예제는 중간값 반올림 규칙에 좌우되지 않습니다.
using System;
class Program
{
static void Main()
{
float positive = 10.8f;
float negative = -10.8f;
int positiveResult = (int)Math.Round(positive);
int negativeResult = (int)Math.Round(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
각각 가장 가까운 정수는 11과 -11입니다. 변환하면 소수 값은 달라집니다. Math.Round()는 작업에 가장 가까운 값으로 반올림하는 동작이 필요할 때 유용하며, 언제나 가장 적합한 변환 방식인 것은 아닙니다. 결과는 int 값입니다. 이 예제는 작성 단계에서 실행되지 않았습니다.