我正在学习 Ruby 我正在尝试创建一个简单的脚本,它将给定的数字转换为罗马数字(旧式罗马数字)
我无法理解为什么我得到“无法将字符串转换为整数(类型错误)”
def convert_to_roman number
romans_array = [[1000,'M'],[500,'D'],[100,'C'],[50,'L'],[10,'X'],[5,'V'][1,'I']]
converted_array = []
romans_array.each do |rom_num|
num = rom_num[0]
letter = rom_num[1]
if number > num
times = number / num
roman_letter = letter*times
converted_array.push(roman_letter)
number = number % num
end
end
converted_array.join()
end
number = ''
puts 'please write a number and I will convert it to old style Roman numerals :)'
puts 'p.s. to exit this program simply hit enter on an empty line, or type 0 and enter :)'
while number != 0
number = gets.chomp.to_i
puts convert_to_roman number
end
我的代码位于: https ://github.com/stefanonyn/ruby-excercises/blob/master/roman_numerals.rb
您会看到在文件末尾注释掉的代码有一个旧版本,它确实有效,但有很多重复。
如果有人能澄清我为什么会收到上述错误,我将不胜感激。请不要为我编写代码,我正在努力学习 Ruby,我将不胜感激,只是为下一步提供一些支持。
非常感谢你!