2014-11-27 4 views
-1

C#의 숫자에서 임의의 숫자를 가져올 수 있기를 원하므로 함수를 만들었습니다. 나는 그 숫자에 도달하기 위해 수학 만 사용했습니다. ". 오류 1 암시 적으로 명시 적 변환 (? 당신이 캐스트를 누락) 존재 'INT'에 '더블'형식을 변환 할 수 없습니다"- 여기 내 코드 그러나C#의 숫자 자리 찾기

static int GetDigit(int number, int k) 
    { 
     // k is the positiong of the digit I want to get from the number 
     // I want to divide integer number to 10....0 (number of 0s is k) and then % 10 
     // to get the last digit of the new number 
     return (number/(int)Math.Pow(10, k-1)) % 10; 
    } 

, 오류 메시지가 있습니다. 나는 Math.Pow가 double을 돌려서 숫자의 타입을 double로 변환하려고 시도한다고 생각합니다. 도움말 크게 감사드립니다 :)

+4

예, 'Math.Pow'는'double '을 반환합니다. 그래서, 당신은'double'을'int'로 변환하는 방법에 대해 생각할 필요가 있습니다 ... 당신은 무엇을 시도 했습니까? (그리고 왜 그냥 결과를 반환하는 것이 아니라'number'에 결과를 할당합니까?) –

답변

0

정수로 변환 하시겠습니까?

static int GetDigit(int number, int k) 
    { 
     // k is the positiong of the digit I want to get from the number 
     // I want to divide integer number to 10....0 (number of 0s is k) and then % 10 
     // to get the last digit of the new number 
     return (int)(number/Math.Pow(10, k)) % 10; 
    } 
} 
+0

return 문에 무의미한 대입이 필요한 이유는 무엇입니까? – leppie

+0

그래, 수학 식 전에 (int)를 넣더라도 그 방법으로 작동한다. 파우어는 여전히 작동한다. 어쨌든 고마워 :) 이제 문제는 오른쪽에서 왼쪽으로 숫자를 반환합니다. 예를 들어 GetDigit (521671, 1)은 1을 반환합니다. 어떤 아이디어입니까? – DareDev1l

+1

k = number.ToString(). 길이 - k; 트릭을해야합니다. –