2016-04-22 1 views
2

Chris Pineの "Learn to Program"のタスクを実行しています。プログラムは、人のお気に入りの番号を求め、+1を加えて結果を表示します。私はこれを書いた:Fixnumの文字列への暗黙的な変換は行われませんが、 "to_i"が使用されます。

puts 'Hello, what\' your favorite number?' 
number = gets.to_i 
puts 'Here\' a better bigger favorite number - ' + number + 1 

をそしてそれは、この返さ:私も

number = gets.chomp.to_i 

を試みたが、それが動作していないよう

Better_number.rb:3:in \'+\': no implicit conversion of Fixnum into String (TypeError) 

を。

+1

あなたの質問はありますか? – sawa

+0

ここであなたの間違いは 'puts 'ここで\'はより良いより大きい好きな数字です - '+数字+ 1'は' 'ここではもっと好きな好きな番号です - ''は文字列で、' number'は整数なので使えません文字列とfixnumの '+' –

+0

正確に何を表示したいですか? –

答えて

2

ルビの文字列に数字を追加することはできません。あなたはそれを文字列にしなければなりません。

puts 'Hello, what\' your favorite number?' 
number = gets.to_i 
puts 'Here\' a better bigger favorite number - ' + (number + 1).to_s 
# or 
bigger_number = number + 1 
puts 'Here\' a better bigger favorite number - ' + bigger_number.to_s 
# or 
puts "Here's a better bigger favorite number - #{bigger_number}" 
+0

これがありました!今それは働いている。どうもありがとう! – annabretsko

+0

@ブレット:役立つ回答を受け入れることを忘れないでください。 –

+0

@SergioTulentsev「鋳造」という用語は、ここで誤解を招くかもしれないと思う。 to_sを呼び出すことによって、全く新しいオブジェクトが作成されます。文字列は、数値の文字列表現です。 –

3

試してみてください。

puts "Here\' a better bigger favorite number - #{number + 1}" 

あなたは数の文字列を合計することはできません。

0

あなたの問題を解決するために#{"interpolation"}を使用することができます。

puts 'Hello, what\' your favorite number?' 
number = gets.to_i 
puts 'Here\' a better bigger favorite number - #{number + 1}' 
関連する問題