gpt4 book ai didi

ruby-on-rails - 如何将浮点形式的时间(hh.mm)除以 ruby 中的整数?

转载 作者:太空宇宙 更新时间:2023-11-03 17:09:11 25 4
gpt4 key购买 nike

我正在尝试将浮点形式 (hh.mm) 的时间除以一个整数。例如 1.30 乘以 2 必须得到 00.45。有什么简单的方法可以做到这一点吗?

最佳答案

使用 float 来表示h.mm有点不寻常。您通常会使用字符串进行格式化。

但是,我将从浮点值中提取小时和分钟开始。为此,我将使用 format 将 float 转换为字符串。 :

time = 1.3
time_str = format('%.2f', time)
#=> "1.30"

然后我会split . 处的字符串以获取小时部分和分钟部分并调用 to_i将它们转换为实际整数:(我在这里使用 map,您也可以在之后调用 h = h.to_i/m = m.to_i)

h, m = time_str.split('.').map(&:to_i)
h #=> 1
m #=> 30

现在我们有了整数 130,我们可以很容易地计算总持续时间(以分钟为单位):

duration = h * 60 + m
#=> 90

然后我会将持续时间除以 2(或任何值):

duration /= 2
#=> 45

并使用 divmod 将其转换回小时和分钟: (它同时返回两个值)

h, m = duration.divmod(60)
h #=> 0
m #=> 45

我们可以将它们格式化为字符串:

format('%02d.%02d', h, m)
#=> "00.45"

或将其转换回 float :

time = h + m.fdiv(100)
#=> 0.45

可以这样格式化:

format('%05.2f', time)
#=> "00.45"

关于ruby-on-rails - 如何将浮点形式的时间(hh.mm)除以 ruby 中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56988614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com