"Have your program add one to the number"?

I'm starting to learn Ruby using the Learn to Program book by Chris
Pine.

On a mini assignment I need to:

"Write a program which asks for a person's favorite number. Have your
program add one to the number, then suggest the result as a bigger and
better favorite number. (Do be tactful about it, though.) "

Here's what I have so far...

1 full_name = first_name + ' ' + middle_name + ' ' + last_name
2 puts full_name + ', ' + 'What\'s your favorite number???'
3 favorite_number = gets.chomp
4 new_number = favorite_number.to_i + 1
5 puts 'hmmm... What about ' + new_number + '? ' + 'It\'s bigger and
better than yours :)'

The program runs smoothly until line 4 than it returns the following
error:

:in `+': can't convert Fixnum into String (TypeError)

Could you please point my mistake?

Thanks,
Fellipe

···

--
Posted via http://www.ruby-forum.com/.

I'm starting to learn Ruby using the Learn to Program book by Chris
Pine.

On a mini assignment I need to:

"Write a program which asks for a person's favorite number. Have your
program add one to the number, then suggest the result as a bigger and
better favorite number. (Do be tactful about it, though.) "

Here's what I have so far...

1 full_name = first_name + ' ' + middle_name + ' ' + last_name
2 puts full_name + ', ' + 'What\'s your favorite number???'
3 favorite_number = gets.chomp
4 new_number = favorite_number.to_i + 1
5 puts 'hmmm... What about ' + new_number + '? ' + 'It\'s bigger and
better than yours :)'

The program runs smoothly until line 4 than it returns the following
error:

:in `+': can't convert Fixnum into String (TypeError)

Could you please point my mistake?

You might want to convert "new_number" from an integer into a string before you add it to the string. :slight_smile: Try adding ".to_s" after "new_number".

···

On 19/12/11 14:52, Fellipe de Paula wrote:

Thanks,
Fellipe

A number will not automaticly be converted to string. You have to do
it manually (with to_s).

Even better, use string interpolation:

puts "hmmm.... Waht about #{new_number}? It's bigger and better."

but we are not wanting to add it in string format, we want to say the
number entered was 10 we want to add 1 to it and get 11 as the
new_number

not 101 in a string format, having the same issue.

please advise.

···

--
Posted via http://www.ruby-forum.com/.

Are you sure the problem is on line 4? Seems like it is more likely
that it is on line 5 where you try to put new_number into a new message.
That is where you need to convert it back to a string.

Gary Wright

···

On Dec 18, 2011, at 11:22 PM, Fellipe de Paula wrote:

I'm starting to learn Ruby using the Learn to Program book by Chris
Pine.

On a mini assignment I need to:

"Write a program which asks for a person's favorite number. Have your
program add one to the number, then suggest the result as a bigger and
better favorite number. (Do be tactful about it, though.) "

Here's what I have so far...

1 full_name = first_name + ' ' + middle_name + ' ' + last_name
2 puts full_name + ', ' + 'What\'s your favorite number???'
3 favorite_number = gets.chomp
4 new_number = favorite_number.to_i + 1
5 puts 'hmmm... What about ' + new_number + '? ' + 'It\'s bigger and
better than yours :)'

The program runs smoothly until line 4 than it returns the following
error:

:in `+': can't convert Fixnum into String (TypeError)

Could you please point my mistake?