My textbook says this:
Converting from a larger type to a smaller type is called a down cast, also known as range narrowing.
Byte <- short <- int <- float <- long <- double
Why is long higher than float on the downcasting/narrowing list?
Isn't the range of values represented by a float much wider than the range represented by a long?
E.g., when casting types (assuming f represents a float and l represents a long), you can do do f = l, but this requires an explicit cast: l = (long) f. Doesn't this show that a float should be higher than a long on the downcasting list?