Compatibility. Floating point literals in C/C++ are treated as 64 bits (e.g. auto f = 0.0;, then type of f is double, which is 64 bits on most platforms).
Time in 11l is represented as a floating point number of seconds since the epoch, the mantissa of which must be at least 32 bits (single precision float has just 23 bits of mantissa). However, Time.unix_time() method can return Float64, not just Float.