我刚刚开始学习ruby,我正在尝试一个简单的程序来接受用户的两个数字并乘以。
这是我的代码:
def mult(i1,i2)
res = i1.to_i * i2.to_i
puts res
end
puts "enter 1st no to multiply"
i1 = gets
puts "enter 2nd no to multiply"
i2 = gets
mult(i1,i2)
这里我通过获取读取两个数字,它接受为字符串,之后我将转换为整数,如代码所示。
但有没有办法直接接受数字数据类型?
答案 0 :(得分:1)
你可以这样做:
i1 = gets.to_i
i2 = gets.to_i
答案 1 :(得分:1)
只有当字符串中包含数字时,才能使用scan方法返回内容。这是一种方法:
gets.scan(/[0-9]/).join.to_i
如果没有输入数字,代码将返回0.否则,它将返回数字。
答案 2 :(得分:0)
查看scanf模块。它类似于c功能。我认为它应该比你做的更有效率。
答案 3 :(得分:0)
如果您了解C,您可能会喜欢scanf。它不是核心语言。在IRB中尝试这个:
?> require 'scanf'
=> true
?> numberX = scanf("%d")
?> 345
=> [345]
#scanf return an array
?> numberX
=> [345]
?> numberX.at(0)
=> 345