askvity

How to Divide Two Integers and Get a Float in Python?

Published in Python Division 3 mins read

To divide two integers and obtain a float result in Python, ensure at least one of the numbers involved in the division is a float or use the true division operator.

In Python, the way division behaves depends on the version you are using. Let's explore how to achieve floating-point division with integers in both Python 2 and Python 3.

Methods for Floating-Point Division

Here are the primary methods to get a float when dividing integers:

  1. Use a Float Literal: Make sure that at least one of the numbers is a float by including a decimal point.

    result = 10.0 / 2  # Result: 5.0
    result = 10 / 2.0  # Result: 5.0
    result = 10.0 / 2.0 # Result: 5.0
  2. Cast to Float: Explicitly convert one or both integers to a float using the float() function.

    num1 = 10
    num2 = 2
    result = float(num1) / num2  # Result: 5.0
  3. True Division (Python 3 and Python 2 with __future__): In Python 3, the / operator always performs true division, returning a float even when dividing two integers. In Python 2, you can enable this behavior by importing division from the __future__ module.

    # Python 2 only (to make it behave like Python 3)
    from __future__ import division
    
    result = 10 / 2  # Result: 5.0

    In Python 3:

    result = 10 / 2  # Result: 5.0

Python 2 vs. Python 3 Division

The main difference lies in how the / operator works by default:

  • Python 2: The / operator performs integer division if both operands are integers. This means the result is truncated to the nearest whole number (e.g., 5 / 2 results in 2). If at least one operand is a float, it performs true division.
  • Python 3: The / operator always performs true division, regardless of the operand types. The // operator is used for integer division (floor division).

Table Summarizing Division Behavior

Operation Python 2 (without __future__) Python 2 (with from __future__ import division) Python 3
5 / 2 2 2.5 2.5
5.0 / 2 2.5 2.5 2.5
5 // 2 N/A N/A 2

Example Scenarios

Let's consider a few practical scenarios:

  • Calculating an average:

    total_sum = 45
    count = 10
    average = float(total_sum) / count  # Ensures a float result: 4.5
  • Percentage calculation:

    part = 3
    whole = 20
    percentage = (float(part) / whole) * 100  # Returns 15.0

Conclusion

To consistently obtain a float when dividing integers in Python, either ensure one of the operands is a float or, especially in Python 2, import division from the __future__ module to change the default division behavior. Using float() to cast one or both integers to floats before dividing is also a straightforward solution.

Related Articles