Not equal? "5".to_i+ "6".to_i and "5".to_i +"6".to_i

ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux]

"5".to_i+ "6".to_i

=> 11

"5".to_i +"6".to_i

=> 5

maybe it's a mistak?

>> "5".to_i+ "6".to_i
=> 11
>> "5".to_i +"6".to_i
=> 5

The second case +"6".to_i is treated as an argument for to_i method.
This will make it more obvious:

"111".to_i +"2".to_i

=> 7

"111".to_i +"2".to_i is equivalent to "111".to_i(2), hence the result.

Regards,
Rimantas

···

--
http://rimantas.com/

"cap" <capitain@gmail.com> writes:

ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux]

"5".to_i+ "6".to_i

=> 11

so, you're calling "5".to_i.+("6".to_i), ie. "5".to_i.+(6),
ie. 5.+(6), ie. 11

"5".to_i +"6".to_i

you're calling "5".to_i(+"6".to_i), ie. "5".to_i(6),
ie. "5" converted in base 6, ie 5

Rule of thumb : always put spaces around operators...

···

--

Eric Jacoboni <eric.jacoboni@free.fr> writes:

you're calling "5".to_i(+"6".to_i), ie. "5".to_i(6),
ie. "5" converted in base 6, ie 5

Ooops... i wanted to say "5" in base 6, converted to int...

···

--

"cap" <capit...@gmail.com> writes:
> ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-linux]

Thanks very much!
I got it

···

On Feb 4, 10:12 pm, Eric Jacoboni <eric.jacob...@free.fr> wrote:

>>> "5".to_i+ "6".to_i
> => 11

so, you're calling "5".to_i.+("6".to_i), ie. "5".to_i.+(6),
ie. 5.+(6), ie. 11

>>> "5".to_i +"6".to_i

you're calling "5".to_i(+"6".to_i), ie. "5".to_i(6),
ie. "5" converted in base 6, ie 5

Rule of thumb : always put spaces around operators...

--