如何编写我的时间转换函数来计算小数点后的位数?
How do I write my time conversion function to account for places after the decimal point?
我正在使用 Rails 4.2.7。我有这个函数可以将字符串(表示持续时间)转换为毫秒……
def duration_in_milliseconds(input)
if input
input.split(':').map(&:to_i).inject(0) { |a, b| a * 60 + b } * 1000
else
0
end
end
问题是,如果有十分之一秒(小数位),上面没有考虑。因此传递此参数“19:14.1”与传递此参数“19:14”得到相同的结果。我如何调整上面的部分,使其占小数点后的时长部分?
在处理时将其转换为浮点数而不是整数:
def duration_in_milliseconds(input)
if input
input.split(':').map(&:to_f).inject(0) { |a, b| a * 60 + b } * 1000
else
0
end
end
duration_in_milliseconds('19:14')
#=> 1154000.0
duration_in_milliseconds('19:14.1')
#=> 1154100.0
我正在使用 Rails 4.2.7。我有这个函数可以将字符串(表示持续时间)转换为毫秒……
def duration_in_milliseconds(input)
if input
input.split(':').map(&:to_i).inject(0) { |a, b| a * 60 + b } * 1000
else
0
end
end
问题是,如果有十分之一秒(小数位),上面没有考虑。因此传递此参数“19:14.1”与传递此参数“19:14”得到相同的结果。我如何调整上面的部分,使其占小数点后的时长部分?
在处理时将其转换为浮点数而不是整数:
def duration_in_milliseconds(input)
if input
input.split(':').map(&:to_f).inject(0) { |a, b| a * 60 + b } * 1000
else
0
end
end
duration_in_milliseconds('19:14')
#=> 1154000.0
duration_in_milliseconds('19:14.1')
#=> 1154100.0