2015-10-10 3 views
0

Я пытаюсь разделить две строки. Вот код:Как я могу разделить две строки в Ruby с gets.chomp?

puts "Enter a weight in lbs: " 
lbs = gets.chomp 
stconversion = 14 
stone = lbs/stconversion 
puts "That is #{stone} stone" 

Я получаю эту ошибку:

/home/ubuntu/workspace/lbs to stones.rb:4:in `<main>': undefined method `/' for "14\n":String (NoMethodError) 
+1

Вы не можете разделить две строки. Причина ошибки –

+1

Всегда говорите, какую ошибку вы получаете, никогда не говорите: «У меня ошибка». Прочтите сообщение об ошибке. иногда это полезно. – Meier

+0

'gets.chomp.to_f.round (2)' –

ответ

3

Эта команда gets выступает за "получение строки". Вы пытаетесь разделить строку на число.

Измените строку

lbs = gets.chomp 

в

lbs = gets.chomp.to_i 

преобразовать строку в целое число, или использовать to_f, если вы предпочитаете использовать поплавки.

+0

Это больше, чем убить не нужно использовать 'gets.chomp.to_i' может использовать' gets.to_i' –

2

Вы не разделить string, вам нужно преобразовать его в int, то есть:

stone = lbs.to_i/stconversion.to_i 

Или конвертировать a string в float:

stone = lbs.to_f/stconversion.to_f 
+2

int? Что это за язык? Кроме того, это делает целое деление в рубине, 13/14 приводит к 0. – steenslag

+0

Прошу прощения !!! путать с питоном !! –

+0

Вы используете 'str.to_i'in ruby ​​ – ppperry

0

Его более убить, чтобы использовать lbs = gets.chomp.to_i, когда вы можете просто использовать lbs = gets.to_i Это правильный способ его обработки.

puts "Enter a weight in lbs: " lbs = gets.to_i stconversion = 14 stone = lbs/stconversion puts "That is #{stone} stone"