을 변환하는 가장 좋은 방법은 무엇입니까 double
로는 int
? 캐스트를 사용해야합니까?
etc.
:)
을 변환하는 가장 좋은 방법은 무엇입니까 double
로는 int
? 캐스트를 사용해야합니까?
etc.
:)
답변:
기본 자르기를 0으로 설정하려는 경우 캐스트를 사용할 수 있습니다. 또한, 사용할 수있는 Math.Ceiling
, Math.Round
, Math.Floor
등 - 당신은 아직도 이후에 깁스를해야하지만.
의 범위 int
가의 범위보다 훨씬 작다는 것을 잊지 마십시오 double
. 발 캐스트 double
에이 int
값의 범위를 벗어난 경우에 예외가 발생하지 않을 것이다 int
체크되지 않은 상황에서 호출 반면 Convert.ToInt32(double)
된다. 값이 범위를 벗어나면 캐스트 결과 (확인되지 않은 컨텍스트)가 명시 적으로 정의되지 않습니다.
int
32 비트 또는 64 비트 시스템을 사용하는지 여부에 관계없이 크기 는 항상 32 비트입니다.
intVal = System.Convert.ToInt32(System.Math.Floor(dblVal));
using System;
하는 단지가 될 수 가리 파일의 상단에intVal = Convert.ToInt32(Math.Floor(dblVal));
using
지시문 에 대해 배우는 것 입니다.
캐스트를 사용하는 경우 즉 (int)SomeDouble
, 분수 부분이 잘립니다. 즉, SomeDouble
4.9999 인 경우 결과는 5가 아니라 4가됩니다. int로 변환해도 숫자가 반올림되지 않습니다. 반올림을 사용하려면Math.Round
여기 완전한 예가 있습니다
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
입니다.
내 길은 :
- Convert.ToInt32(double_value)
- (int)double_value
- Int32.Parse(double_value.ToString());
double_value = 0.1