Forum: Ruby simple newbie question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bob W. (Guest)
on 2006-05-11 04:13
Hi, I'm just starting Ruby and theres something I'm sure is very simple
but I just cant get it work. Its an exercise in Chris P.'s tutorial.
The question is:
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.

My code:
puts 'What is your favourite number?'
number = gets.chomp
puts 'I think ' +  (number.to_s + 1.to_s) + ' is a better number'

is the only way I can get anything to work but this is adding strings so
2 + 1 becomes 21 which is not the objective.

Of course, I need the answer to be 3.

puts 'What is your favourite number?'
number = gets.chomp
puts 'I think ' +  (number.to_i + 1.to_i) + ' is a better number'

results in this error "cannot convert Fixnum into String (TypeError)"

I've tried lots of other combinations but its not happening for me.
I know its simple but, hey, I have to start somewhere.

Bob
Bill K. (Guest)
on 2006-05-11 04:24
(Received via mailing list)
From: "Bob W." <removed_email_address@domain.invalid>
>
> puts 'What is your favourite number?'
> number = gets.chomp
> puts 'I think ' +  (number.to_i + 1.to_i) + ' is a better number'
>
> results in this error "cannot convert Fixnum into String (TypeError)"

One way:

  puts 'I think ' +  (number.to_i + 1).to_s + ' is a better number'

Another way (note double quotes instead of single quotes):

  puts "I think #{number.to_i + 1} is a better number"


Hope this helps,

Bill
Logan C. (Guest)
on 2006-05-11 04:24
(Received via mailing list)
On May 10, 2006, at 8:13 PM, Bob W. wrote:

> number = gets.chomp
> puts 'I think ' +  (number.to_i + 1.to_i) + ' is a better number'
>
You can call methods on expressions...

( some code ).to_s
Bob W. (Guest)
on 2006-05-11 04:33
> One way:
>
>   puts 'I think ' +  (number.to_i + 1).to_s + ' is a better number'
>
> Another way (note double quotes instead of single quotes):
>
>   puts "I think #{number.to_i + 1} is a better number"
>
>
> Hope this helps,
>
> Bill

Thanks Bill and Logan,
The fog is lifting a little now.

Bob
This topic is locked and can not be replied to.