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.
83119a6861eb21836d151fd7ec379b03?d=identicon&s=25 Bob Wickham (bob)
on 2006-05-11 02: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 Pine'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
4feed660d3728526797edeb4f0467384?d=identicon&s=25 Bill Kelly (Guest)
on 2006-05-11 02:24
(Received via mailing list)
From: "Bob Wickham" <wickham_bob@yahoo.com.au>
>
> 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
E34b5cae57e0dd170114dba444e37852?d=identicon&s=25 Logan Capaldo (Guest)
on 2006-05-11 02:24
(Received via mailing list)
On May 10, 2006, at 8:13 PM, Bob Wickham 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
83119a6861eb21836d151fd7ec379b03?d=identicon&s=25 Bob Wickham (bob)
on 2006-05-11 02: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.