puts "first number please"
first = gets.chomp
puts "Second number please"
second = gets.chomp
answer = first + second
puts "The calculation is #{first} + #{second} = " + answer.to_s
我总结了两个变量first
和second
如果first
== 1且second
== 2则answer
应为3,但ruby显示12有什么问题?
我尝试的是
answer = first.+(second)
答案 0 :(得分:2)
Thant是因为gets
返回一个字符串。因此+
中的answer = first + second
运算符适用于字符串连接。将其更改为:
puts "first number please"
first = gets.to_i
puts "Second number please"
second = gets.to_i
答案 1 :(得分:1)
因此,这里的问题是您试图获取2个不起作用的字符串之和,您需要先将.chomp
替换为.to_i
,然后将其转换为整数,然后再进行操作可以像使用它一样使用它,但是请记住,例如,如果要十进制数,例如在进行除法运算时,则需要使用.to_f
使其浮点以得到更精确的十进制答案
puts("Give first number")
number_one = gets.to_i
puts("Give second number")
number_two = gets.to_i
sum = number_one + number_two
puts("Answer is: #{sum}")
答案 2 :(得分:0)
你得到的数字实际上是字符串,所以当你使用“+”ruby连接它们时。 你应该试试
gets.to_i
答案 3 :(得分:-1)
puts "first number please"
first = gets.chomp
puts "Second number please"
second = gets.chomp
answer = first.to_i + second.to_i
puts "The calculation is #{first} + #{second} = #{answer}"
控制台:
[3] a = gets.chomp
2
=> "2"
[4] a.class
=> String
[5] a = a.to_i
=> 2
[6] a.class
=> Fixnum