#include "math.h"
static const int base = 10;
static const char hex[] = "0123456789abcdef";
void print_integral_part(float value)
{
printf("input : %f\n", value);
char a[129]; // worst case is 128 digits for base 2 plus NUL
char * p = a + 128;
*p = 0;
do
{
int digit = fmod(value, base);
value /= base;
printf("interm: %f\n", value);
*--p = hex[digit];
} while (value >= 1);
printf("result: %s\n", p);
}
int main()
{
print_integral_part(12345.678f);
print_integral_part(3.40282347e+38F);
}