Jano Svitok wrote: > On Mon, Feb 25, 2008 at 3:18 PM, Christian Rubio > <chris.rubio.osv / fedex.com> wrote: > >> Help I am completely new to ruby and to OO programming. Why-does my code >> not compile?? >> >> > Replace > >> b = (ARGV[0]) >> c = (ARGV[1]) >> > by > b = ARGV[0].to_f > c = ARGV[1].to_f > to_f will convert string to float. For more info, read the docs of > String#to_f and possibly the whole String class > (e.g. using RI or http://ruby-doc.org/core/) > > If the message is different, please post it and will see. > > Jano > > Hi Thanks for your help and directions. I made the above substitutions and now I get the following error % ruby quadratic.rb 1.0 1.0 You entered 1.0 1.0 quadratic.rb:17:in `sqrt': Numerical argument out of domain - sqrt (Errno::EDOM) from quadratic.rb:17:in `findroots' from quadratic.rb:30 Here is my program, #!/usr/bin/env ruby ########################### ## ## program that solve quadratic equation ## ########################### class Quadratic def findroots() b = (ARGV[0].to_f) c = (ARGV[1].to_f) $stdout.print("You entered " , ARGV[1]," ", ARGV[0], "\n") discriminant = b * b - 4.0 * c sqroot = Math.sqrt(discriminant) root1 = (-b + sqroot) / 2.0 root2 = (-b - sqroot) / 2.0 $stdout.print(root1) $stdout.print(root2) end end if __FILE__ == $0 qf = Quadratic.new qf.findroots end