Skip to main content

How to Check If a Number Is Zero in Python

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

# ✅ Correct: Direct comparison for integers
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}")

# ⛔️ Incorrect: This often fails due to precision
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

# ✅ Correct: Check if value is close to 0 with absolute tolerance
# abs_tol=1e-9 means any number smaller than 0.000000001 is treated as zero
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.
tip

Always use abs_tol when comparing against zero, as relative tolerance (rel_tol) does not work well when the target value is exactly 0.

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:
# Attempt division
result = numerator / denominator
print(f"Result: {result}")
except ZeroDivisionError:
# ✅ Correct: Handle the error specifically
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.