Menu
Coddy logo textTech

Modulo Operator

Part of the Fundamentals section of Coddy's C++ journey — lesson 17 of 74.

The modulo operator % gives the remainder of a division. In C++, it's used with a simple syntax:

result = dividend % divisor;
  • dividend: The number being divided.
  • divisor: The number that divides the dividend.
  • result: The remainder of the division.

For example:

result = 10 % 3;

Here, 10 is divided by 3. 3 goes into 10 three times, with a remainder of 1. So, result will be 1.

Usually modulo is used for checking if a number is even or odd:

  • If a number is even, dividing it by 2 will leave a remainder of 0.
  • If a number is odd, dividing it by 2 will leave a remainder of 1.

When working with floating-point numbers (doubles) in C++, you cannot use the modulo operator % directly. Instead, you need to use the fmod() function from the <cmath> library. It works similarly to the modulo operator but keeps the decimal precision. For example:

#include <cmath>

double result = fmod(5.2, 2.0);
// result is 1.2

Here's how it works: 2.0 goes into 5.2 two times (4.0), and the remainder is 1.2 (5.2 - 4.0 = 1.2).

Another example:

double result = fmod(7.8, 3.5);
// result is 0.8

When the divisor is larger than the dividend, the result equals the dividend. This applies to both % and fmod().

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

Why? The divisor fits zero times, so the entire dividend is the remainder.

challenge icon

Challenge

Beginner

Write a code that initializes three variables, a (int), b (double) and c (int) with the values 9, 2.6, and 11 (respectively).

After that, initialize the following variables:

  • d (int) that will hold the result of a modulo 2 
  • e (int) that will hold the result of a modulo 3
  • f (double) that will hold the result of b modulo 1.5
  • g (double) that will hold the result of b modulo 3.9
  • h (int) that will hold the result of c modulo 10

Check out the result and see how different dividends and divisors affect the result.

Cheat sheet

The modulo operator % gives the remainder of a division:

result = dividend % divisor;

Example:

result = 10 % 3;  // result is 1

Common use case - checking if a number is even or odd:

  • Even numbers: number % 2 == 0
  • Odd numbers: number % 2 == 1

For floating-point numbers, use fmod() from <cmath>:

#include <cmath>

double result = fmod(5.2, 2.0);  // result is 1.2
double result2 = fmod(7.8, 3.5); // result2 is 0.8

When the divisor is larger than the dividend, the result equals the dividend. This applies to both % and fmod().

Try it yourself

#include <iostream>
#include <cmath>

int main() {
    // Type your code below
    
    
    // Don't change the line below
    std::cout << "a = " << a << std::endl;
    std::cout << "b = " << b << std::endl;
    std::cout << "c = " << c << std::endl;
    std::cout << "d = " << d << std::endl;
    std::cout << "e = " << e << std::endl;
    std::cout << "f = " << f << std::endl;
    std::cout << "g = " << g << std::endl;
    std::cout << "h = " << h << std::endl;
    return 0;
}
quiz iconTest yourself

This lesson includes a short quiz. Start the lesson to answer it and track your progress.

All lessons in Fundamentals