Forum: Ruby How the equality check is being done in Ruby?

Posted by Love U Ruby (my-ruby)
on 2013-01-12 22:13
Hi ,


I ran the below code to do some test on <=>,==,===,eql?,equal? I took 1
and 1.o to perform my test.

Part-I : output is saying 1 and 1.0 are equal - as per mathematical
knowledge it is right.

irb(main):009:0> 1<=>1.01
=> -1
irb(main):010:0> 1<=>1.0
=> 0
irb(main):011:0> 1==1.0
=> true
irb(main):012:0> 1===1.0
=> true

Part- II

Here why the opposite output comes here, how it comes? what computation
Ruby did on these?

irb(main):015:0> 1.eql? 1.0
=> false
irb(main):016:0> 1.equal? 1.0
=> false
irb(main):017:0>
Posted by Joel Pearson (virtuoso)
on 2013-01-12 22:22
Someone's done a handy description of some common comparison operators 
here:
http://stackoverflow.com/questions/7156955/whats-t...
Posted by Love U Ruby (my-ruby)
on 2013-01-12 22:28
Joel Pearson wrote in post #1092080:
> Someone's done a handy description of some common comparison operators
> here:
> 
http://stackoverflow.com/questions/7156955/whats-t...


Thanks for the link,most of the part going above the head! :( trying to 
map it with my one,but my bad.I was failed.
Posted by Attila Gulyas (toraritte)
on 2013-01-12 22:31
(Received via mailing list)
Hi Arup,

http://ruby-doc.org/core-1.9.3/Numeric.html#method-i-eql-3F

"eql?" returns true if num and numeric are the same type and have equal 
values.
1 is Integer, 1.0 is Float

1 == 1.0          #=> true
1.eql?(1.0)       #=> false
(1.0).eql?(1.0)   #=> true

please refer to the documentation before asking.

regards
attila
Posted by Wayne Brissette (Guest)
on 2013-01-12 22:33
(Received via mailing list)
On Jan 12, 2013, at 3:29 PM, Arup Rakshit wrote:

>
I think you need to start here;

http://pine.fm/LearnToProgram/
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.