0
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

我总结了两个变量firstsecond

如果first== 1 和second== 2 那么answer应该是 3,但是 ruby​​ 显示 12 有什么问题?

我尝试的是

answer = first.+(second)
4

4 回答 4

3

Thant 是因为gets返回一个字符串。所以+运算符 inanswer = first + second适用于字符串连接。将其更改为:

puts "first number please"
first = gets.to_i
puts "Second number please"
second = gets.to_i
于 2013-09-18T12:30:21.667 回答
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}")
于 2020-11-03T18:43:36.993 回答
0

你得到的数字实际上是字符串,所以当你使用“+”时,ruby 将它们连接起来。你应该试试

gets.to_i
于 2013-09-18T12:28:21.533 回答
-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
于 2013-09-18T12:35:22.697 回答