Re: What does Rails do with basic Ruby's math behaviour?

15 views
Skip to first unread message

Nicolas Desprès

unread,
Dec 6, 2012, 3:44:02 AM12/6/12
to rubyonra...@googlegroups.com
I forgot to say that I am using ruby 1.9.3-p327.

On Thu, Dec 6, 2012 at 9:41 AM, Nicolas Desprès <nicolas...@gmail.com> wrote:
Hi,

This is my first post on this mailing list and I would like to thanks the authors and the community for this great tools.

After a couple of weeks happily playing with Rails, I got bitten by a strange behaviour drift between Rails and Ruby:

Plain Ruby:

$ irb
irb(main):001:0> 2 / 5
=> 2/5
irb(main):003:0> 2.to_f / 5.to_f
=> 0.4

Ruby On Rails:

$ cd /tmp
$ rails new t1
$ cd t1
$ rails console
Loading development environment (Rails 3.2.9)
irb(main):001:0> 2 / 5
=> 0
irb(main):002:0> 2.to_f / 5.to_f
=> 0.4

So I just don't get why 2/5 doesn't return the same result in both cases. Personally, I found this behaviour dangerous since many third party libraries will be based on it. I had a quick look at http://guides.rubyonrails.org/active_support_core_extensions.html but could not find any mention of it.

Can someone explain me why and how Rails does that?

Best regards,

-- 
Nicolas Desprès




--
Nicolas Desprès

Nicolas Desprès

unread,
Dec 6, 2012, 3:41:20 AM12/6/12
to rubyonra...@googlegroups.com

Frederick Cheung

unread,
Dec 7, 2012, 6:46:57 AM12/7/12
to rubyonra...@googlegroups.com


On Thursday, December 6, 2012 8:41:20 AM UTC, Nicolas Desprès wrote:
Hi,

This is my first post on this mailing list and I would like to thanks the authors and the community for this great tools.

After a couple of weeks happily playing with Rails, I got bitten by a strange behaviour drift between Rails and Ruby:

Plain Ruby:

$ irb
irb(main):001:0> 2 / 5
=> 2/5
irb(main):003:0> 2.to_f / 5.to_f
=> 0.4


That's not how it behaves for me. I get 2 / 5 == 0 in both cases. The ruby mathn library (part of the stdlib) does do this (and I really wish it wouldn't). Perhaps something in your irbrc pulls this in ?

Fred

Nicolas Desprès

unread,
Dec 7, 2012, 9:04:55 AM12/7/12
to rubyonra...@googlegroups.com
Not .irbrc. I forgot I had an alias on irb which pull -m option... :-( So the error was from my environment. Thanks for your reply.

Sorry for the noise.

--
Nicolas Desprès

Reply all
Reply to author
Forward
0 new messages