#include <stdio.h>
#include <math.h>
#include <ctype.h> // isdigit
// Function to extract the first digit of a floating-point number
int getFirstDigit(double num) {
char buffer[64];
num = fabs(num); // handle negative numbers
// Convert number to string
snprintf(buffer, sizeof(buffer), "%.15g", num); // Use %.15g to avoid scientific notation
// Find first digit character
for (int i = 0; buffer[i] != '\0'; ++i) {
if (isdigit((unsigned char)buffer[i])) {
return buffer[i] - '0';
}
}
return -1; // error case
}
int main() {
double value = 48724.928;
int firstDigit = getFirstDigit(value);
printf("First digit: %d\n", firstDigit);
firstDigit = getFirstDigit(0.9761);
printf("First digit: %d\n", firstDigit);
return 0;
}
/*
run:
First digit: 4
First digit: 0
*/