How to Get First N Digits of a Number without Converting to String

A method which takes two arguments as input, first the number and second the number of digits to be returned from the first argument number.

Here is the method: 
  1. private static int takeNDigits(int number, int N)    
  2. {    
  3.     int numberOfDigits = (int)Math.Floor(Math.Log10(number) + 1);    
  4.     
  5.     if (numberOfDigits >= N)    
  6.         return (int)Math.Truncate((number / Math.Pow(10, numberOfDigits - N)));    
  7.     else    
  8.         return number;    
  9.     
  10. }    
And here is the usage: 
  1. int Result1 = takeNDigits(666, 4);    
  2. int Result2 = takeNDigits(987654321, 5);    
  3. int Result3 = takeNDigits(123456789, 7);    
  4. int Result4 = takeNDigits(35445, 1);    
  5. int Result5 = takeNDigits(666555, 6);    
Output:
 
Result1 : 666
Result2 : 98765
Result3 : 1234567
Result4 : 3