未定义的方法/用于15 ruby

未定义的方法/用于15 ruby,ruby,Ruby,我得到了一个错误nomethoderror undefined method/for 15,代码如下: tts = gets.chomp 2 * (tts / Math.sqrt(2)) + tts 其中,我将tts值设置为15。如果我把第一行改成 tts = 15 程序成功地执行了方程。我哪里出错了?因此,当您从get.chomp获取一个值时,它默认为一个字符串。当您在终端中输入15时,返回的是字符串“15”,而不是整数15。要解决此问题,可以执行以下操作: tts=gets.chomp.

我得到了一个错误
nomethoderror undefined method/for 15
,代码如下:

tts = gets.chomp
2 * (tts / Math.sqrt(2)) + tts
其中,我将
tts
值设置为
15
。如果我把第一行改成

tts = 15

程序成功地执行了方程。我哪里出错了?

因此,当您从get.chomp获取一个值时,它默认为一个
字符串。当您在终端中输入15时,返回的是
字符串
“15”,而不是
整数
15。要解决此问题,可以执行以下操作:


tts=gets.chomp.to_i

tts=gets.chomp.to_i
这个问题应该表明提问者对这个主题的理解很低。顺便问一下,为什么使用:
2*(tts/Math.sqrt(2))+tts
而不是
Math.sqrt(2)*tts+tts
?为了引起情绪反应lol。这是向上投票,然后=)我不是向下投票人,但我认为这不是真的
当你在终端中输入15时,你得到的是字符串“15”,而不是整数15。
如果你在终端中输入
tts=15
,这将是一个
Fixnum
。不是我的否决票,但我可以看到一个缺陷。如果输入不是类似字符串的整数,会发生什么?我建议你使用类似于
tts=gets.chomp的东西。为了拯救0
@Vucko,当你通过gets.chomp获得一个值时,它是一个
string
而不是
Fixnum
@MitulP91。OP在他的第二个示例中没有使用
chomp
,他只是使用
tts=15
。您应该在答案中输入
chomp
返回字符串。