Ruby on rails 如何编写时间转换函数来计算小数点后的位数?
我使用的是Rails 4.2.7。我有一个将字符串(表示持续时间)转换为毫秒的函数Ruby on rails 如何编写时间转换函数来计算小数点后的位数?,ruby-on-rails,ruby,time,format,duration,Ruby On Rails,Ruby,Time,Format,Duration,我使用的是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.
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