Philpot Philpot - 23 days ago 11
Ruby Question

Ruby modulus. Why are these two sums printing different answers?

I'm learning ruby and having problems with the %Modulus sums.

puts "example #{101 % 4}"


The above prints 1 in the terminal which is what I expected.

Why does the below print 101 in the terminal? Surely it's the same as above?

puts "example #{100 + 1 % 4}"


I understand that % is just another way of saying 'X divided by Y with J remaining". Therefore surely the 2nd example should also return 1?

Any help will be greatly appreciated.

Answer

Parentheses are important. Because of operator precedence rules, the second example is seen by ruby as

100 + (1 % 4)

Which gives

100 + 1

which equals 101

You probably meant

(100 + 1) % 4
Comments