2014-12-28 44 views
0

我正在经历克里斯派恩的学会编程,我无法让这个练习工作。 从用户那里得到一个num,然后应该告诉用户num + 1是一个更大更好的数字。我在哪里可以在此代码中调用'.to_i'?

有了这个代码: 1 puts 'What\'s your favorite number?' 2 num = gets.chomp 3 num = num.to_i + 1 4 puts num +' is a bigger and better favorite number.'

我得到这个错误线路4: in '+': String can't be coerced into Fixnum (TypeError)

所以我的字符串变量实际上并没有得到转换为整数,对不对?我如何完成这项工作?

回答

1

在最后一行中,代码试图连接一个数字和一个字符串。

>> 1 + ' is ...' 
TypeError: String can't be coerced into Fixnum 
     from (irb):2:in `+' 
     from (irb):2 
     from C:/Ruby21-x64/bin/irb:11:in `<main>' 

在串联之前将数字转换为字符串。应该还有空间+之间 '...'

puts num.to_s + ' is a bigger and better favorite number.' 
      ^

或者使用字符串插值:

puts "#{num} is a bigger and better favorite number." 
+0

谢谢!这工作! – Ric

+0

@RicReyes,欢迎来到Stack Overflow!如果这对你有帮助,你可以通过[接受答案](http://meta.stackoverflow.com/a/5235)告诉社区。 – falsetru

+0

再次感谢!堆栈溢出非常有用,但我显然还在学习绳索。 :) – Ric

-1

以此作为最后一行 -

puts "#{num} is a bigger and better favorite number." 
相关问题