How to get First N digits of a number without Converting to String
Few days back i was asked by my senior colleague to make 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.
After sometime i was able to make logic of it, which was to get the number of digits of the input number and then i used that to get the number of digits using second parameter.
Here is the method:
and use it :
Result1 : 666
Result2 : 98765
Result3 : 1234567
Result4 : 3
Result5 : 666555
After sometime i was able to make logic of it, which was to get the number of digits of the input number and then i used that to get the number of digits using second parameter.
Here is the method:
private static int takeNDigits(int number, int N) { int numberOfDigits = (int)Math.Floor(Math.Log10(number) + 1); if (numberOfDigits >= N) return (int)Math.Truncate((number / Math.Pow(10, numberOfDigits - N))); else return number; }
and use it :
int Result1 = takeNDigits(666, 4); int Result2 = takeNDigits(987654321, 5); int Result3 = takeNDigits(123456789, 7); int Result4 = takeNDigits(35445, 1); int Result5 = takeNDigits(666555, 6);
Output:
Result1 : 666
Result2 : 98765
Result3 : 1234567
Result4 : 3
Result5 : 666555