Skip to content

How to Check If a Number Is Zero in Python

Learn how to accurately detect zero in Python for integers with == and handle floating-point precision issues using math.isclose() for reliable comparisons.

Checking if a number is zero is a common operation in programming, essential for preventing errors like division by zero and managing control flow. While integer comparisons are straightforward, floating-point numbers require careful handling due to precision limitations.

This guide explains how to check for zero correctly for both integers and floating-point values using direct comparison and tolerance-based methods.

Method 1: Direct Comparison (For Integers)

For integers (int), you can directly compare the variable with 0 using the equality operator ==. This is precise and safe.

num = 0

if num == 0:
    print("The number is Zero.")
else:
    print("The number is NOT Zero.")

Output:

The number is Zero.

Method 2: Handling Floating-Point Precision

Floating-point numbers (float) are stored as approximations. A calculation that should mathematically result in 0.0 might result in a tiny number like 1e-16 due to rounding errors.

Problem

val = 0.1 + 0.2 - 0.3
print(f"Calculated Value: {val}")

if val == 0:
    print("Zero")
else:
    print("Not Zero (Unexpected!)")

Output:

Calculated Value: 5.551115123125783e-17
Not Zero (Unexpected!)

Solution: Using math.isclose()

To check if a float is effectively zero, check if it is "close enough" (within a tolerance/epsilon).

import math

val = 0.1 + 0.2 - 0.3 # Approx 5.55e-17

if math.isclose(val, 0, abs_tol=1e-9):
    print("The number is effectively Zero.")
else:
    print("The number is NOT Zero.")

Output:

The number is effectively Zero.

Method 3: Preventing Division by Zero

Checking for zero is critical before performing division. Instead of checking with if, the Pythonic way often involves try-except blocks to handle the error gracefully if it occurs.

numerator = 10
denominator = 0

try:
    result = numerator / denominator
    print(f"Result: {result}")
except ZeroDivisionError:
    print("Error: Cannot divide by zero.")

Output:

Error: Cannot divide by zero.

Conclusion

To check if a number is zero in Python:

  1. Integers: Use num == 0 for direct comparison.
  2. Floats: Use math.isclose(num, 0, abs_tol=1e-9) to handle precision errors.
  3. Division: Use try-except ZeroDivisionError to safely handle zero denominators.
Navigation