FLT_MIN is 1.17549435e-38.
The error message really comes from using
float x = 1.1754943508e-38F
Then why did you tell us it came from
float val = 1.1E-38F;
? When you go to the doctor, and your wrist hurts, are you in the habit
of telling him that your finger hurts? Your misrepresentation about the
cause of the warning message caused Barry Schwarz an Fred Tydeman to
mis-diagnose the problem.
This is (slightly) larger than FLT_MIN, but both print out as
1.1754943508222875003e-38. I presume this latter number is the
closest value that FLT_MIN represents; one bit larger would be a
number that is larger than 1.17549435e-38, and further
away.
That makes an important difference; 1.1E-38F is less than FLT_MIN on
most systems, yours included. That means it can't be represented as a
normalized floating point value. If that had been the reason for the
warning, it was very badly worded, but it would have been a reasonable
thing to warn about.
However, since your actual number is larger than FLT_MIN, my best guess
is that it's warning you about the fact that your constant has three
more digits than the maximum that can be meaningful for your system.
That's not a particularly important issue to warn about, but it is not
wholly unreasonable to warn about it. If that's the case, it's still a
badly worded message. That would explain why the message goes away if
you remove the 'F'; the maximum number of meaningful digits for double
is typically roughly double the number for float. Notice that it was
impossible for any of us to make such a guess based upon your original
message, where the number had only two significant digits.
Because the warning message is such a poor fit to either guess, it's
still possible that some other problem is the real cause. I'd recommend
contacting someone knowledgeable about the particular compiler which
your using, preferably the compiler vendor's official customer support.
And when you contact them, please give them the correct code.
Preferably, a complete program, as small as possible, that demonstrates
the problem (and test it before sending it to them, to make sure it
actually demonstrates the problem).