Ruby no implicit conversion of Fixnum into String (TypeError)
fixnum, ruby
Solution
Add a `.to_i` to your `gets.chomp` calls. You're trying to do math operations on text. When inputted from the console, everything starts out as text, even if it's numeric looking text.
Problem
I am trying to answer the following question from Chris Pine's "Learn to Program" book: Leap years. Write a program that asks for a starting year and an ending year and then puts all the leap years between them (and including them, if they are also leap years). Leap years are years divisible by 4 (like 1984 and 2004). However, years divisible by 100 are not leap years (such as 1800 and 1900) unless they are also divisible by 400 (such as 1600 and 2000, which were in fact leap years). What a mess! I get the following error when I run my code: leap_year.rb:12:in `+': no implicit conversion of Fixnum into String (TypeError) from leap_year.rb:12:in`' Here is my code: ``` #leap years puts 'What is the starting year?' starting_year = gets.chomp puts 'What is the ending year?' ending_year = gets.chomp while starting_year <= ending_year if starting_year%4 == 0 && (starting_year%100 != 0 && starting_year%400 == 0) puts starting_year end starting_year+=1 end ```