这是一个练习题 - 写一个需要几分钟的方法,然后返回一个将数字格式化为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)
有时我会在前两个测试中得到真实但第三个测试行显示为false,即使代码将打印出完全符合要求的内容。
其他时候我收到以下错误:
字符串不能被强制转换为Fixnum(repl):4:+' (repl):4:in
time_conversion' (repl):1:在`initialize'
请协助。
答案 0 :(得分:1)
错误主要是指这一行
time = hours + ":" + mins
hours
& mins
为Fixnum
,而“:”为String
正如错误消息所示,“字符串无法强制进入Fixnum”。
您可以time = hours.to_s + ":" + minutes.to_s
或time = "#{hours}:#{minutes}"
。
答案 1 :(得分:0)
因为Fixnum#+
采用Numeral
参数,而不是String
。