How to express a decimal number as a fixed-length string with leading zeros in Python

1 Answer

0 votes
"""
    format_decimal_with_zeros
    -------------------------
    Converts a floating‑point number into a fixed‑length string with
    leading zeros on the integer part.

    Parameters:
        num          - the decimal number to format
        width        - total width of the integer part (zero‑padded)
        decimals     - number of digits after the decimal point

    Returns:
        A formatted string such as "00003.14159"

    Example:
        num = 3.14159, width = 5, decimals = 5
        Output → "00003.14159"
"""
def formatDecimalWithZeros(num: float, width: int, decimals: int) -> str:

    # Split into integer and fractional parts
    integer_part = int(num)
    fractional_part = num - integer_part

    # Format integer part with leading zeros
    int_str = f"{integer_part:0{width}d}"

    # Format fractional part (starts with "0.xxx")
    frac_str = f"{fractional_part:.{decimals}f}"

    # Remove the leading "0" before the decimal point
    return int_str + frac_str[1:]


num = 3.14159

result = formatDecimalWithZeros(num, 5, 5)

print("Original number:", f"{num:.5f}")
print("Formatted string:", result)



"""
run:
             
Original number: 3.14159
Formatted string: 00003.14159
         
"""

 



answered 5 hours ago by avibootz

Related questions

...