From: Adam Aa Date: 2010-03-02T12:08:49+09:00 Subject: Re: Is this a bug or a whole new concept? Apologies...should have checked the documentation first..we are also comparing types with "eql?" num.eql?(numeric) => true or false ----------------------------------------------------------------------- Returns true if num and numeric are the same type and have equal values. 1 == 1.0 #=> true 1.eql?(1.0) #=> false (1.0).eql?(1.0) #=> true Adam Aa wrote: > > Greetings, > > I got a book on Ruby and I am trying to learn it piece by piece. I was > a Perl programmer for a while so the syntax of Ruby is not too hard for > me. What I don't understand is the following and I thank you in advance > for your help and input. > > I have a variable named "num" that is set to "9." I'm using the > num.eql?() method to test whether or not num.eql?(9) and it gives me > "true" in IRB - no surprise there. The next one below also gives me > "true" since 18/2 is 9. I read in the book that if you want to force > the result of an experssion to be a float, make one or both operands a > floating number. So we have 18/2.0. But the result is "false." How come? > How come everytime I change either the number to float I get a false > even though the expression is correct? At first I thought I'm not > dividing numbers - rather maybe I'm dividing the value of the chars > rather than their math value. But that's not true as "18.to_i/2.to_i," > just like "18/2," gives us "true." > > I'm all ears to hear the logic behind such behavior > > Thanks again > > irb(main):058:0> num.eql?(9) > => true > irb(main):059:0> num.eql?(18/2) > => true > irb(main):060:0> num.eql?(18/2.0) > => false > irb(main):061:0> num.eql?(18.0/2) > => false > irb(main):062:0> num.eql?(18.0/2.0) > => false > irb(main):063:0> num.eql?(18/2) > => true > irb(main):064:0> num.eql?(18.0/2.to_f) > => false > irb(main):065:0> num.eql?(18.to_f/2.to_f) > => false > irb(main):066:0> num.eql?(18.to_f/2.to_i) > => false > irb(main):067:0> num.eql?(18.to_i/2.to_i) > => true > irb(main):068:0> -- Posted via http://www.ruby-forum.com/.