提交 d75992b0 编写于 作者: J John Paul Ashenfelter 提交者: Godfrey Chan

`DateTime#to_f` now preserves fractional seconds.

Previously this method always returns `.0` in the fractional part. This commit
changes it to preserve the fractional seconds instead.

Fixes #15994.
上级 a4104278
* `DateTime#to_f` now preserves the fractional seconds instead of always
rounding to `.0`.
Fixes #15994.
*John Paul Ashenfelter*
* Add `Hash#transform_values` to simplify a common pattern where the values of a
hash must change, but the keys are left the same.
......
......@@ -71,9 +71,9 @@ def self.civil_from_format(utc_or_local, year, month=1, day=1, hour=0, min=0, se
civil(year, month, day, hour, min, sec, offset)
end
# Converts +self+ to a floating-point number of seconds since the Unix epoch.
# Converts +self+ to a floating-point number of seconds, including fractional microseconds, since the Unix epoch.
def to_f
seconds_since_unix_epoch.to_f
seconds_since_unix_epoch.to_f + sec_fraction
end
# Converts +self+ to an integer number of seconds since the Unix epoch.
......
......@@ -338,6 +338,7 @@ def test_compare_with_time_with_zone
def test_to_f
assert_equal 946684800.0, DateTime.civil(2000).to_f
assert_equal 946684800.0, DateTime.civil(1999,12,31,19,0,0,Rational(-5,24)).to_f
assert_equal 946684800.5, DateTime.civil(1999,12,31,19,0,0.5,Rational(-5,24)).to_f
end
def test_to_i
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册