을 변환하는 가장 좋은 방법은 무엇입니까 double
로는 int
? 캐스트를 사용해야합니까?
답변
기본 자르기를 0으로 설정하려는 경우 캐스트를 사용할 수 있습니다. 또한, 사용할 수있는 Math.Ceiling
, Math.Round
, Math.Floor
등 – 당신은 아직도 이후에 깁스를해야하지만.
의 범위 int
가의 범위보다 훨씬 작다는 것을 잊지 마십시오 double
. 발 캐스트 double
에이 int
값의 범위를 벗어난 경우에 예외가 발생하지 않을 것이다 int
체크되지 않은 상황에서 호출 반면 Convert.ToInt32(double)
된다. 값이 범위를 벗어나면 캐스트 결과 (확인되지 않은 컨텍스트)가 명시 적으로 정의되지 않습니다.
답변
캐스트를 사용하는 경우 즉 (int)SomeDouble
, 분수 부분이 잘립니다. 즉, SomeDouble
4.9999 인 경우 결과는 5가 아니라 4가됩니다. int로 변환해도 숫자가 반올림되지 않습니다. 반올림을 사용하려면Math.Round
답변
그래, 왜 안돼?
double someDouble = 12323.2;
int someInt = (int)someDouble;
Convert
수업 사용 도 잘 작동합니다.
int someOtherInt = Convert.ToInt32(someDouble);
답변
Convert.ToInt32
변환하는 가장 좋은 방법입니다
답변
가장 좋은 방법은 간단하게 사용하는 것 Convert.ToInt32
입니다. 빠르며 올바르게 반올림됩니다.
왜 더 복잡하게 만드나요?
답변
여기 완전한 예가 있습니다
class Example
{
public static void Main()
{
double x, y;
int i;
x = 10.0;
y = 3.0;
// cast double to int, fractional component lost (Line to be replaced)
i = (int) (x / y);
Console.WriteLine("Integer outcome of x / y: " + i);
}
}
숫자를 더 가까운 정수로 반올림하려면 다음을 수행하십시오.
i = (int) Math.Round(x / y); // Line replaced
답변
가장 좋은 방법은 Convert.ToInt32
입니다.