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>
on 2013-01-12 22:13
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...
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.
on 2013-01-12 22:31
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