From the Java Language Specification, Section 15.12:
The Java programming language uses the rule that the most specific method is chosen.
The informal intuition is that one method declaration is more specific than another if any invocation handled by the first method could be passed on to the other one without a compile-time type error.
The method "Two" could not "pass on" the call to the method "One" because it would require an explicit cast of the 2nd parameter from double to float.
However, method "One" could "pass on" the call to method "Two", because the compiler can implicitly widen the 2nd parameter from float to a double.
Therefore method "One" is more specific than method "Two" and is chosen by the compiler.
And it's difficult to see in my browser, but the arguments in the method call are 7L, not 71.