ここには練習問題があります - 何分もかかるメソッドを記述し、数字を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)
は、時々私は、最初の2つのテストのための真の取得が、第3のテストラインは、コードが必要な正確にプリントアウトされますにもかかわらず、偽示します。私は次のエラーを取得する
他の回:
文字列がFixnumか(REPL)に強制することはできません:4:+' (repl):4:in
time_conversionで
':1(REPL)を初期化 `における' 支援してください。
文字列に数値を追加することはできません。 'irb'を実行して' 5 + 'foo''と入力すると、同じエラーが発生します。あなたの 'time_conversion'関数で' time = hours.to_s + ':' + mins.to_s'を試してください。あるいは関数の内容全体を 'return"#{minutes/60}:#{minutes%60} "と置き換えるだけでも" – lurker
wow。そのトリックをした。私はハッシュを使用して来ていないが、それは面白いです。私は分と時間変数を削除することができると思います – hac13
はい、あなたはそれらの変数を削除することができます。 '6:05'のように、分で先頭に0を入れたい場合は、" ruby string formatting "を調べるべきです。あなたの 'time_conversion'は' 6:00'を作成しません。 '6:0'を作成します。 – lurker