如何使用 ruby 将时间转换为 bigdecimal?
How to convert time to bigdecimal with ruby?
比如我有一个字符串格式的时间数据:
00:25:23;16
我想将其转换为 BigDecimal
并尝试过:
a = '00:25:23;16'.to_d
=> #<BigDecimal:96cb548,'0.0',9(18)>
当我检查一个:
a.floor
=> 0
看起来不是真实值。那么如何正确转换呢?
加法
我期望像这样的 bigdecimal 值(可能不是正确的值):
1543.123
假设 ;16
表示毫秒,那么也许您正在寻找这个?
> str = "00:25:23;16"
=> "00:25:23;16"
> h, m, s, ms = str.split(/[:;]/).map(&:to_f)
=> [0.0, 25.0, 23.0, 16.0]
> h * 3600 + m * 60 + s + ms/1000
=> 1523.016
比如我有一个字符串格式的时间数据:
00:25:23;16
我想将其转换为 BigDecimal
并尝试过:
a = '00:25:23;16'.to_d
=> #<BigDecimal:96cb548,'0.0',9(18)>
当我检查一个:
a.floor
=> 0
看起来不是真实值。那么如何正确转换呢?
加法
我期望像这样的 bigdecimal 值(可能不是正确的值):
1543.123
假设 ;16
表示毫秒,那么也许您正在寻找这个?
> str = "00:25:23;16"
=> "00:25:23;16"
> h, m, s, ms = str.split(/[:;]/).map(&:to_f)
=> [0.0, 25.0, 23.0, 16.0]
> h * 3600 + m * 60 + s + ms/1000
=> 1523.016