As with all the data types there is a limit to what a number can hold. To understand why it gives INF just try out the following program.
[insert]
Code:
#include <stdio.h>
#include <float.h>
int main()
{
float test = 8388607;
int i;
for(i = 23; i < 130; i++){
printf("%d bits: %f\n", i, test);
test *= 2;
}
printf("The maximum value of float can be %.20e\n", FLT_MAX);
printf("The minimum value of float can be %.20e\n", FLT_MIN);
printf("\n Size of float %d", sizeof(float));
return 0;
}
So you have hit the max limit for float in your case and its not possible to go beyond that!!!!!!!!!!