It has to do with what data a float can hold - it can hold 1.4E-45 to 3.4E38, which means that there are certain values it cannot hold which are in between those values.
For example, Math.round(99.499999f) = 100. You and I can see that when you round that number it should be 100, but a float can't hold the exact number 99.499999 and the closest number that it can see is 99.5 something. Hope this helps (I don't believe the
SCJP expects you to know the rounded (integer or long) value of any float or double value). Hope this helps.