PYTHON

Python Floor Division: Syntax, Usage, and Examples

Python floor division provides a way to divide two numbers and discard the remainder. Instead of returning a float, it returns the largest whole number less than or equal to the actual result. This makes floor division Python behavior especially useful when working with integers or performing chunk-based operations like pagination, splitting datasets, or calculating even group sizes.

The double slash operator (//) is what performs floor division in Python. This operator works for both integers and floats, and it returns an integer when both operands are integers, or a float when at least one operand is a float.


What Is Floor Division in Python?

Floor division in Python refers to an operation that divides two numbers and truncates the decimal part of the result, returning only the integer portion. For example:

result = 7 // 2
print(result)  # Output: 3

While standard division (/) would return 3.5, the double slash operator drops everything after the decimal point, giving you 3. This operation is especially helpful when rounding down values without using a separate function.

If you’ve wondered what does floor division do in Python, the key takeaway is that it performs a division while always rounding the result down to the nearest whole number.


How to Do Floor Division in Python

To perform floor division in Python, use the double slash operator (//). Here are a few examples:

print(10 // 3)   # Output: 3
print(15 // 4)   # Output: 3
print(9 // 2)    # Output: 4

You can also use floor division on floating-point numbers:

python
Copy
print(10.5 // 2)  # Output: 5.0

Even though the result is a float, it still discards the fraction.

Learning how to do floor division in Python is essential when your program requires precision without fractions—like when you're splitting items evenly among users or calculating how many rows to show per page.


Python Double Slash Operator vs Regular Division

Understanding the difference between the standard division (/) and the Python double slash operator is essential. Here's a comparison:

print(7 / 2)   # Output: 3.5 (standard division)
print(7 // 2)  # Output: 3 (floor division)

The standard division always returns a float, while floor division truncates the decimal part. Keep in mind that floor division rounds toward negative infinity, which means it behaves differently with negative numbers:

print(-7 // 2)  # Output: -4

This behavior can surprise those who expect rounding toward zero.


Floor Division with Negative Numbers

Python floor division becomes particularly interesting with negative operands. For example:

print(-10 // 3)  # Output: -4
print(10 // -3)  # Output: -4

In both cases, Python rounds the result toward the smaller number (more negative). This is different from how languages like JavaScript treat division, so keep this in mind when porting logic.


Using Floor Division in Loops

Python floor division is commonly used in loops when splitting elements, computing middle indices, or creating step intervals. For example, calculating the midpoint in a binary search:

left = 0
right = len(array) - 1
mid = (left + right) // 2

This ensures you're working with a clean integer index, preventing bugs from floating-point rounding.

You can also use floor division in range-based loops:

for i in range(0, len(items), len(items) // 3):
    print(items[i])

This allows you to divide an array into equal-sized segments without using external math libraries.


Floor Division in Real-World Examples

Pagination

Floor division is used frequently in pagination logic:

total_items = 56
items_per_page = 10
total_pages = (total_items + items_per_page - 1) // items_per_page
print(total_pages)  # Output: 6

Adding items_per_page - 1 before applying floor division ensures correct rounding up.

Chunking

To divide a dataset into chunks:

chunk_size = 4
for i in range(0, len(data), chunk_size):
    chunk = data[i:i + chunk_size]

You can then calculate the number of chunks:

num_chunks = len(data) // chunk_size

This lets you process fixed-size subsets efficiently.


Working with Lists and Indexing

Floor division Python is often used to calculate indices when working with lists:

names = ['Alice', 'Bob', 'Charlie', 'David']
middle_index = len(names) // 2
print(names[middle_index])  # Output: Charlie

This works even for odd-length lists, returning the index of the middle item.


Floor Division in Functions

You can build utility functions around floor division to handle repetitive logic. For instance, a function to split an array into two parts:

def split_list(lst):
    mid = len(lst) // 2
    return lst[:mid], lst[mid:]

Or a more complex one to chunk an array evenly:

def chunk_list(lst, parts):
    chunk_size = len(lst) // parts
    return [lst[i:i + chunk_size] for i in range(0, len(lst), chunk_size)]

These use floor division in Python to ensure consistent chunk sizing.


Differences from Other Division Methods

Here’s a quick rundown comparing different division behaviors in Python:

  • / (true division): Always returns a float.
  • // (floor division): Returns the whole number result.
  • % (modulus): Returns the remainder of the division.

When you're using floor division alongside modulus:

div = 7 // 2     # 3
mod = 7 % 2      # 1
print(div * 2 + mod)  # 7 (original number)

This trick is useful when reconstructing a number or verifying logic in interview-style problems.


Type Behavior in Floor Division

The result of a floor division depends on the types of operands:

print(9 // 2)     # 4 (int)
print(9.0 // 2)   # 4.0 (float)

If either operand is a float, the result becomes a float. Otherwise, the result is an integer. This distinction is important when writing functions that depend on strict return types.


Using Floor Division with NumPy

If you’re using NumPy, the // operator works the same way:

import numpy as np
arr = np.array([10, 20, 30])
print(arr // 7)  # Output: [1 2 4]

This lets you apply floor division element-wise across arrays for efficient computation.


Floor Division in Integer Math

Python floor division often shows up in scenarios where you avoid decimals entirely:

  • Integer grid layout calculations
  • Budgeting or allocation systems
  • Step-based control flow
  • Unit conversion

For example, converting seconds into full minutes:

seconds = 145
minutes = seconds // 60

Here, Python floor division discards the leftover seconds, giving you only the full minutes.


Summary

Python floor division gives you a straightforward and efficient way to divide numbers and drop the fractional part. It plays a vital role in algorithms, looping logic, pagination, and array manipulation. The floor division operator (//) rounds results toward negative infinity, even when working with negative numbers. That makes it distinct from simply casting the result to int.

When choosing between standard division and floor division Python, think about whether you want fractional results or need clean whole numbers. Use floor division in Python for scenarios that require predictable integer output, such as calculating indices, building chunks, or formatting data display.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH

Reach your coding goals faster