Today’s Code of the Day is about how to find the digit of a number at a given position. I decided to go with the C / C++ programming languages to time, but you can easily translate the algorithms to other languages.
C Code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> #include <math.h> // Function: getDigitFromNum returns a digit at a given index of a integer. // Goes from right to left with the starting index of 0. int getDigitFromNum( int num, int digit ){ num /= pow( 10, digit ); return num % 10; } // Function: getDigitFromDec returns a digit at a given index of a double. // Goes from left to right with the starting index of 0. int getDigitFromDec( double dec, int digit ){ dec *= pow( 10, digit ); return (int)dec % 10; } // Function: getDigitFromNum returns the decimal values of a double. double getDecimals( double dec ){ return dec - (int)dec; } |
Example:
Input File
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Programmed by Larry Battle, bateru.com/news // Date: April 26, 2011 // Purpose: To demonstrate how to get a digit by a position index. #include <stdio.h> #include <math.h> int getDigitFromNum( int num, int digit ){ num /= pow( 10, digit ); return num % 10; } int getDigitFromDec( double dec, int digit ){ dec *= pow( 10, digit ); return ((int)dec) % 10; } double getDecimals( double dec ){ return dec - (int)dec; } void main(){ double dec = 1234.56789; printf( "\n%d", getDigitFromNum( (int)dec, 0 )); printf( "\n%d", getDigitFromDec( dec, 2 )); printf( "\n%f", getDecimals( dec )); } |
Output:
1 2 3 | 4 6 0.567890 |


