Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

I'm trying to get the remainder of a division using Ruby.

Let's say we're trying to divide 208 by 11.

The final should be "18 with a remainder of 10"...what I ultimately need is that 10.

Here's what I've got so far, but it chokes in this use case (saying the remainder is 0).

division = 208.to_f / 11
rounded = (division*10).ceil/10.0
remainder = rounded.round(1).to_s.last.to_i
share|improve this question
up vote 50 down vote accepted

The modulo operator:

> 208 % 11
=> 10
share|improve this answer

If you need just the integer portion, use integers with the / operator, or the Numeric#div method:

quotient = 208 / 11
#=> 18

quotient = 208.0.div 11
#=> 18

If you need just the remainder, use the % operator or the Numeric#modulo method:

modulus = 208 % 11
#=> 10

modulus = 208.0.modulo 11
#=> 10.0

If you need both, use the Numeric#divmod method. This even works if either the receiver or argument is a float:

quotient, modulus = 208.divmod(11)
#=> [18, 10]

208.0.divmod(11)
#=> [18, 10.0]

208.divmod(11.0)
#=> [18, 10.0]

Also of interest is the Numeric#remainder method. The differences between all of these can be seen in the documentation for divmod.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.
{"cc_re__cc_re__cc_by_sa_3_0": ["                       <li><a href=\"//area51.stackexchange.com\" title=\"proposing new sites in the Stack Exchange network\">Area 51</a></li>\r\n                        <li><a href=\"//careers.stackoverflow.com\">Stack Overflow Careers</a></li>\r\n                    \r\n                </ol>\r\n            </td>\r\n    </tr>\r\n</table>\n                </div>\n            </div>\n\n            <div id=\"copyright\">\n                site design / logo &#169; 2016 Stack Exchange Inc; user contributions licensed under <a href=\"https://creativecommons.org/licenses/by-sa/3.0/\" rel=\"license\">cc by-sa 3.0</a> \n                with <a href=\"http://blog.stackoverflow.com/2009/06/attribution-required/\" rel=\"license\">attribution required</a>\n            </div>\n            <div id=\"svnrev\">\n                rev 2016.2.12.3248\n            </div>\n            \n        </div>\n    </div>\n    <noscript>\n        <div id=\"noscript-warning\">Stack Overflow works best with JavaScript enabled<img src=\"http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif\" alt=\"\" class=\"dno\"></div>\n    </noscript>\n\n   "], "copyright__copyright__copyright": ["ceiver or argument is a float:\n\nquotient, modulus = 208.divmod(11)\n#=> [18, 10]\n\n208.0.divmod(11)\n#=> [18, 10.0]\n\n208.divmod(11.0)\n#=> [18, 10.0]\n\nAlso of interest is the Numeric#remainder method. The differences between all of these can be seen in the documentation for divmod.\n\nshare|improve this answer\n\nYour Answer\n\n\u00a0\ndiscard\n\nBy posting your answer, you agree to the privacy policy and terms of service.\n\nNot the answer you're looking for? Browse other questions tagged or ask your own question."]}