Error: no implicit Conversion of Integer into String (Typeerror)

Asked

Viewed 749 times

1

I chose the ruby language to learn how to program but I’m stuck in the following exercise:

Write a program that asks for a person’s favorite number. Add one to the number, and suggest the result as a much better favorite number

I can only multiply the number and not add

puts 'Olá, qual é seu número favorito ?'
name = gets.chomp
puts 'Seu número favorito é ' + name + '?  Que número legal!'
puts 'Eu acho que, ' + name * 1 + ' é um número favorito muito melhor. :)'

if I change: ' + name * 1 + ' for ' + name + 1 + '

new.Rb:4:in +': no implicit Conversion of Integer into String (Typeerror)

  • How did you try? Edit the question and include your code.

1 answer

3


The return of gets.chomp is a string. It is necessary to convert this data to integer before trying to do any arithmetic operation.

This is possible using the method to_i. Note that to use the text representation of the number, you will need to use the method to_str.

puts 'Olá, qual é seu número favorito ?'
name = gets.chomp.to_i

puts 'Seu número favorito é ' + name.to_s + '?  Que número legal!'
puts 'Eu acho que, ' + (name + 1).to_s + ' é um número favorito muito melhor. :)'

See working on repl.it.

  • Thank you so much now I understand perfectly.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.