2017-05-23 1 views
-2

유클리드 거리를 int 유형으로 계산할 수 있습니까? 유클리드 거리는 C#

public static int ED(int x1, int x2, int y1, int y2) 
    { 
     int square = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); 
     return square; 
    } 

나는 이것을 시도,하지만 난 Math.Sqrt 기능을 추가하는 경우, 작업을 doen't. 내가 무엇을 할 수 있을지 ?

+2

추가하지 않았습니다 ... (예제에서) –

+0

해결되었습니다. ... 'int square = Convert.ToInt32 (Math.Sqrt ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))); – Bob

+0

또한 그것을 캐스팅 할 수도 있습니다 :'int square = (int) Math.Sqrt ((변환하는 대신 x1 .....') –

답변

2

당신은 double에 출력 유형을 변경해야합니다 :

x1 = 0 
y1 = 0 
x2 = 1 
y2 = 1 

sqrt(2) = 1.4142...를 반환해야합니다 :

//DONE: ED has to return double, not int 
public static double ED(int x1, int x2, int y1, int y2) 
{ 
    return Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); 
} 

좌표가 모두 int 경우에도, 유클리드 거리가 필요한 정수 값이 아닙니다