in `>': Vergleich von Fixnum mit null ist fehlgeschlagen (ArgumentError) römische Ziffer Konverter in Ruby

Ich bin neu in Ruby und ich versuche ein Programm zu schreiben, welche die Umwandlung von römischen Ziffern zu zahlen.

Dies ist, was ich getan habe so weit:

roman_numbers = {"M" => 1000, "D" => 500, "C" => 100, "L" => 50, "X" => 10, "V" => 5, "I" => 1}
number_by_user = "MCMXCIX"
singlenum = number_by_user.split(//).reverse!

l = singlenum.length
result =0


result = roman_numbers[singlenum[0]]
puts result
for i in 0..l-1
  if roman_numbers.key?(singlenum[i])
    **if (roman_numbers[singlenum[i]] > roman_numbers[singlenum[i+1]])** #gives error
      result = result - roman_numbers[singlenum[i+1]]
    elsif (roman_numbers[singlenum[i]]== roman_numbers[singlenum[i+1]] || **roman_numbers[singlenum[i]] < roman_numbers[singlenum[i+1]])** #gives error
      result = result + roman_numbers[singlenum[i+1]]
    end
    puts roman_numbers[singlenum[i]]
  else
    puts "One of the values are not roman"
    break
  end  
end
puts "The number is: " , result

aber es gibt mir die folgende Fehlermeldung (siehe die Zeile mit Kommentar):

:in `>': comparison of Fixnum with nil failed (ArgumentError)
InformationsquelleAutor Daisy | 2012-02-24
Schreibe einen Kommentar