【发布时间】:2016-04-19 11:09:31
【问题描述】:
这是一个练习题 - 编写一个需要几分钟的方法,并返回一个将数字格式化为 hours:minutes 的字符串。
def time_conversion(minutes)
hours = minutes / 60
mins = minutes % 60
time = hours + ":" + mins
return time
end
以下是测试是否有效。如果它们返回 true,则意味着我的代码可以正常工作。
puts('time_conversion(15) == "0:15": ' + (time_conversion(15) == '0:15').to_s)
puts('time_conversion(150) == "2:30": ' + (time_conversion(150) == '2:30').to_s)
puts('time_conversion(360) == "6:00": ' + (time_conversion(360) == '6:00').to_s)
有时我的前两个测试结果为真,但第三个测试行显示为假,即使代码将完全打印出所需的内容。
其他时候我收到以下错误:
字符串不能被强制转换为 Fixnum (repl):4:in +' (repl):4:intime_conversion' (repl):1:in `initialize'
请帮忙。
【问题讨论】:
-
您不能在字符串中添加数字。运行
irb并输入5 + 'foo',你会得到同样的错误。在您的time_conversion函数中尝试time = hours.to_s + ':' + mins.to_s。甚至只是将整个函数内容替换为return "#{minutes/60}:#{minutes % 60}" -
哇。那成功了。我没有遇到过使用哈希,但这很有趣。我想这可以让我删除 mins 和 hours 变量
-
是的,您可以删除这些变量。如果您想在会议记录中使用前导零,您应该查找“ruby 字符串格式”,例如
6:05。您的time_conversion不会创建6:00。它将创建6:0。 -
啊啊啊啊啊。如果分钟小于 10,我需要添加前导零。(作为字符串)但这很好。我爱这一切。谢谢!
标签: ruby