On my platform I don't get more precision on 1.8.7

    # 1.8.7
    >> "%.9f" % Time.at(10, 0).to_f
    => "10.000000000"
    >> "%.9f" % Time.at(10, 10000).to_f
    => "10.010000000"
    >> "%.9f" % Time.at(10, 10000.10).to_f
    => "10.010000000"

    # 1.9.3
    >> "%.9f" % Time.at(10, 0).to_f
    => "10.000000000"
    >> "%.9f" % Time.at(10, 10000).to_f
    => "10.010000000"
    >> "%.9f" % Time.at(10, 10000.10).to_f
    => "10.010000100"
    >> "%.9f" % Time.at(10, 10000.123456).to_f
    => "10.010000123"
    >> Time.at(10, 10000.123456).nsec
    => 10000123