# 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

“cap” [email protected] 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…

On Feb 4, 10:12 pm, Eric J. [email protected] wrote:

“cap” [email protected] writes:

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

Thanks very much!
I got it

Eric J. [email protected] 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…