Handling Zero Denominators

Strategies for dealing with division by zero in financial calculations.

Policy-Based Handling

from metricengine import ZeroDivisionPolicy

# Raise exception (strict)
with ZeroDivisionPolicy.RAISE:
    ratio = numerator / denominator

# Return infinity
with ZeroDivisionPolicy.INFINITY:
    ratio = numerator / denominator

# Return zero
with ZeroDivisionPolicy.ZERO:
    ratio = numerator / denominator

Custom Handling

def safe_divide(numerator, denominator, default=None):
    if denominator == 0:
        if default is not None:
            return default
        raise ZeroDivisionError("Cannot divide by zero")
    return numerator / denominator

Business Logic

def debt_to_equity_ratio(debt, equity):
    """Calculate debt-to-equity ratio."""
    if equity == 0:
        # Business rule: infinite leverage
        return float('inf')
    return debt / equity