我正在尝试将值转换为整数,我在这里做错了什么?

时间:2019-06-06 17:14:10

标签: ruby syntax

我只是想使此代码正常工作,而且我不断得到:

  

<=':字符串与21的比较失败(ArgumentError)

请告诉我我在做错什么。

我正在学习,并且已经遍历了我能想到的代码的每一次迭代以使其起作用,我只是不确定自己做错了什么。

puts "How old are you?"
old = gets.chomp

if old <= 21
  return "You are not legally allowed to buy alcohol in the US"
else 
  return "You are legally allowed to buy alcohol in the US"
end

3 个答案:

答案 0 :(得分:4)

我相信您必须使用to_i将字符串转换为整数。

答案 1 :(得分:2)

上一个答案是正确的,但更冗长的是,这是您需要在代码中更改的行:

upi://pay?pa=*******&pn=PhonePeMerchant&cu=INR

但是您可能还想确保用户只输入一个整数,因为在非数字字符上调用old = gets.chomp.to_i 会返回.to_i

您可能想看看Accept only numeric input

答案 2 :(得分:2)

根据需要尝试/改进:

input = gets.chomp

if(val = Integer(input) rescue false)
  val < 21 ? 'Not old enough' : 'The usual martini?'
else
  'You did not provide an age (number)'
end

它检查输入是否为整数,因此它考虑了foo之类的输入。

Hth ...